403 forbidden error when using POST method to access rest api for Editing existing issue

I want to edit a field of an existing issue using rest api within request. I can acces GET method easily and get the data using rest api, but cannot access PUT/POST method(got 403()). So have added the following code,

AP.request({
type: 'POST',
contentType: 'application/json',
dataType: 'json',
data: {"fields": {"description": "testing"}},
url: 'https://mysite.atlassian.net/rest/api/2/issue/XYZ-5',
beforeSend: function (xhr){
xhr.setRequestHeader('Authorization', 'basic: '+ base_auth(user, password));
},
success: function (response) {
alert("success");
},
error: function (data, status, error) {
alert("failed");
console.log('error', data, status, error);
}
});

function base_auth(user, password)
{
var loginDetail = user + ':' + password;
var tag = btoa(loginDetail);
return "Basic " + tag;
}

 

But, while using this i get the same error 403() not permitted and also beforeSend code does not get hit.

Already, have posted question regarding Edit and Update issue here.

If using CURL code can fix this issue, can you please suggest how to use the CURL code within request with a sample code.

2 answers

1 accepted

Hi Hari,

usually, you don't have to provide authentication headers when you use the AP.request method, see also the docs for this.

It might be the problem that you didn't specify the corresponding scope, you'd need the WRITE scope for this one, see also the docs here.

Cheers,
Matthias

Hi Matthias,

Yes, I have added WRITE option in scopes and got the issue fixed already. Thanks a lot for your response.

Cheers,

Hari

0 vote

Hello Hari,

I'm having the same issue however I don't completely understand how did you solve the problem. Can you explain how did you solve this?

Cheers,
Nilay.

Hi Nilay,

I have found a solution and works fine in cloud based connect add-on. Before working refer to 'Edit Issue' content in this docs.

To make an HttpRequest to the host product use AP.request method.

Then add WRITE scope in your atlassian-connect.json file. Here is the docs for adding scope.

Here is the sample code of giving request,

AP.request({
url: 'https://your-domain.atlassian.net/rest/api/2/issue/{issueIdOrKey}',
type: 'PUT',
data: //put your data here as shown in the docs,
contentType: 'application/json',
success: function (response) {
//your code
},
error: function () {
//your code
}
}); 

 

Cheers,

Hari

Suggest an answer

Log in or Sign up to answer
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Published Thursday in Jira Service Desk

How the Telegram Integration for Jira helps Sergey's team take their support efficiency to the bank

...+ reading Fantasy). The same is true for him at the bank he works for: Efficiency is key when time literally equals money. Read on to learn how Sergey makes most of the time he has by...

200 views 0 2
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you