403 Forbidden on POST method of /rest/api/2/issue however get works

Ramneek GUPTA January 2, 2017

Hello,

 

I am using the /rest/api/2/issue API of JIRA. I am successfully able to use Get for below URL

https://futuregroupb.atlassian.net/rest/api/2/issue/LHEL-24

but i get 403 forbidden error on POST with basic authentication which i used in GET method.

The POST method works absolutely fine on curl command.

 

Please help.

 

Thanks

Ramneek

8 answers

1 accepted

9 votes
Answer accepted
Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
January 2, 2017

If it works with curl, what is different about the call you are making with whatever is failing?

Ramneek GUPTA January 2, 2017

Hello,

Only the client is different, i fire the Curl command from Linux command line which works fine, but when try to hit the API using the AJAX jquery call (using the same authenticatio), i get 403 forbidden error

attached is my JS File, i have intentionally hidden the password here

 

Thanks

Ramneek

Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
January 2, 2017

I don't know enough about javascript to help you with that, but it must be the call in that trying to do the wrong thing.

Ives Laaf June 22, 2017

What was the solution? I've currently a similar issue in a CORS scenario - so GET's against the API work but a POST to create a new issue throws a 403...

Like Gunnar Bachmann likes this
Hari Prasath P September 19, 2017

I too got the same error 403 forbidden error when trying to access rest-api using POST/PUT method and my code was as follows,

AP.require(['request'], function(request) {
request({
url: 'https://mysite.atlassian.net/rest/api/2/issue/XYZ-5',
type: 'POST',
contentType: 'application/json',
data: {
"fields": {"description": "testing"}
},
beforeSend: function (xhr) {
xhr.setRequestHeader ("Authorization", "Basic " + btoa(" user : password "));
},
success: function(response) {
alert("success");
},
error: function (response) {
alert('fail... ');
}
});
});

Did you get any idea to fix the 403() status response. How, to overcome this and edit an existing issue using rest api with POST method. 

And also have questioned regarding Edit and Update issues here.

Or if using CURL can fix this error, how to use this code based on CURL code within request.

Like Yash Tank likes this
4 votes
Daniel Kolle June 26, 2018

Can you check the scopes object in your atlassian-connect.json file? I ran into this same issue and found out I only had the READ scope by defailt. I added WRITE scope as well and it worked like a champ.

"scopes": [ "READ", "WRITE" ]

Also, be sure to update your script to use the new AP.request method as the one listed above is deprecated. See docs here

 

Hope that helps!

Kumudu_Samarakoon February 27, 2019

Thanks, Daniel. I got the same error because of this reason. I added WRITE scope and now It works well. 

Pavel Naydanov September 4, 2019

I added 

"scopes": [ "READ", "WRITE" ]

and for me it works well too 

Hung Quoc September 4, 2019

Hello @Pavel Naydanov  

I'm using free cloud server and her is my connect descriptor here. Do you have any suggestion, I'm still getting this error 

Thanks

1 vote
Nilay March 8, 2018

Has anyone solved this issue? I'm also having the same problem. The curl command works completely fine, however when I try POST method with the same credentials and same datas on my code, it returns 403.

0 votes
Kevin Cassidy April 1, 2019

Hi, I'm also having this issue. 

I can make the POST call work in Postman. But when I try to do it as an AJAX call I get a 403 Forbidden error. 

Would be great to hear if someone has solved this issue. 

Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
April 1, 2019

Is the payload of your AJAX call identical to the POST?

Kevin Cassidy April 1, 2019

Yep, I even tried copy & pasting directly out of Postman. 

The error just says "403 (Forbidden)". Here's the code below: 

var requestBody = {
"fields": {
"summary": "Kevin Test",
"description": "Description Test",
"project": {
"id": "13104"
},
"issuetype": {
"id": "7"
},
"components": [
{
"id": "20720"
}
],
"customfield_12213": "2019-04-22"
}
}


var settings = {
"async": true,
"crossDomain": true,
"url": "https://corsBypassURL.com/https://jira.corp.docusign.com/rest/api/2/issue",
"method": "POST",
"headers": {
"Authorization": "Basic xxxxx=",
"Content-Type": "application/json",
"cache-control": "no-cache"
},
"data": requestBody
}

$.ajax(settings).done(function (response) {
console.log(response);
});

Adarsh May 16, 2019

Not sure, but you can try passing User-Agent header. 

denilsonliftbank July 8, 2019

I got this error, and was solved with header

User-Agent: MyAgent (Insomnia)

Nguyen Quach August 9, 2019

Hello @Kevin Cassidy  

I got the same issue with you, Did you solve your problem? please suggest 

Thanks 

Quách

kevincassidy313 August 9, 2019

Hi @Nguyen Quach , it turned out the domain needed to be whitelisted by a Jira admin. Once this was done, it worked perfectly :)

Nguyen Quach August 14, 2019

Does Jira cloud support the whitelist configuration? 

Hung Quoc August 28, 2019

@Kevin Cassidy 

How can we configure whitelisted? 

Kevin Cassidy August 29, 2019

Instructions can be found here: https://confluence.atlassian.com/adminjiraserver073/configuring-the-whitelist-861254007.html

 

Once we added the specific domain here, then I no longer received the 403 error and my API calls started working successfully. 

Hung Quoc August 30, 2019

Hello @Kevin Cassidy  

I'm using Jira Cloud, does it different? 

Regards, 

Kevin Cassidy September 3, 2019

Hi @Hung Quoc - I've no idea to be honest! Sorry I can't be of more use. 

0 votes
Lee Alexis Bermejo April 2, 2018

(deleted)

0 votes
Dustin February 21, 2018

I'm still having this same issue. I don't think user credentials are the issue, as making GET requests, and POST requests via CURL both work fine with the same credentials. Making the call via AJAX for what it's worth. Any ideas?

0 votes
Thiagarajan C January 12, 2018

Is anyone having the answers to the questions posted above. I am having the same issue.

Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
January 13, 2018

I'm sure they discovered that they were not providing the right user details.  This is the usual pattern when a discussion about 404's over REST stops with no-one making follow-up comments.

0 votes
Suparas Jain January 2, 2017

Can you please try "data: JSON.stringify(sendInfo)". I am not sure here but you can try.

Ramneek GUPTA January 2, 2017

sorry but it gives me the same error

Also the URL i hitting expects a JSON in the request

Suggest an answer

Log in or Sign up to answer