I'm trying to fetch data from my Jira Cloud instance through the Jira and Jira Agile REST APIs using JavaScript in a browser. Queries to Jira REST API work fine but identical queries to Jira Agile REST API keep failing with the response
<span>Response</span> <span>for</span><span> preflight has invalid HTTP status code </span><span>401.</span>
I'm using Basic Authentication with user ID and an API token obtained from Jira. With cURL and ARC, I'm able to successfully retrieve data both from the Jira REST API and the Jira Agile REST API, so the authentication against both APIs seems to work. In JS I have tried with both fetch() and jquery ajax() and the result was the same.
My code looks essentially as follows
<span>function</span><span> fetchFromJira</span><span>(</span><span>url</span><span>,</span><span> id</span><span>,</span><span> token</span><span>)</span> <span>{</span>
<span>const</span><span> authorizationString </span><span>=</span> <span>'Basic '</span> <span>+</span><span> btoa</span><span>(</span><span>id </span><span>+</span> <span>':'</span> <span>+</span><span> token</span><span>);</span>
<span>const</span><span> options </span><span>=</span> <span>{</span><span> method</span><span>:</span> <span>'GET'</span><span>,</span><span> headers</span><span>:</span> <span>{</span>
<span>Authorization</span><span>:</span><span> authorizationString</span><span>,</span>
<span>'Content-Type'</span><span>:</span> <span>'application/json'</span><span>,</span>
<span>},</span>
<span>};</span><span>
fetch</span><span>(</span><span>url</span><span>,</span><span> options</span><span>)</span>
<span>.</span><span>then</span><span>(</span><span>response </span><span>=></span> <span>{</span>
<span>if</span> <span>(</span><span>response</span><span>.</span><span>ok</span><span>)</span> <span>{</span>
<span>return</span><span> response</span><span>.</span><span>json</span><span>();</span>
<span>}</span> <span>else</span> <span>{</span>
<span>throw</span> <span>new</span> <span>Error</span><span>(</span><span>response</span><span>.</span><span>status</span><span>);</span>
<span>}</span>
<span>})</span>
<span>.</span><span>then</span><span>(</span><span>json </span><span>=></span> <span>{</span><span> console</span><span>.</span><span>log</span><span>(</span><span>json</span><span>);</span>
<span>})</span>
<span>.</span><span>catch</span><span>(</span><span>error </span><span>=></span> <span>{</span><span> console</span><span>.</span><span>log</span><span>(</span><span>error</span><span>);</span>
<span>});</span>
<span>}</span><span>
fetchFromJira</span><span>(</span>
<span>'https://fredrikastrom.atlassian.net/rest/api/latest/issue/10000'</span><span>,</span>
<span>'<user id>'</span><span>,</span>
<span>'<API token>'</span>
<span>);</span> <span>// successful</span><span>
fetchFromJira</span><span>(</span>
<span>'https://fredrikastrom.atlassian.net/rest/agile/1.0/board'</span><span>,</span>
<span>'<user id>'</span><span>,</span>
<span>'<API token>'</span>
<span>);</span> <span>// fails</span>Any clue what goes wrong in the query to Jira Agile REST API and how it should be modified in order to work? Thanks!
Same question previously posted to Stackoverflow.