I'm following the ScriptRunner and Tempo tutorials to fill a Tempo Dynamic DropDown Work Attribute
It was very simple and everything looks good and I can get the JSONP through my browser using: https://MyJiraBase/rest/scriptrunner/latest/custom/tempoWorkType?callback=fn
tempoWorkType is my endpoint
But when I go to Tempo the dropdown is empty. So I did an inspect on the web page in Google Chrome and see this: Refused to execute script from 'https://MyJiraBase/rest/scriptrunner/latest/custom/tempoWorkType?callback=__jp0' because its MIME type ('application/json') is not executable, and strict MIME type checking is enabled.
Why is the MIME type JSON when there is a callback? Shouldn't it know that it's JSONP?
I don't see a MediaType of JSONP or Javascript for Groovy. How can I fix this? Any help is greatly appreciated. Thank you.
For the requester the answer will be to late. But i struggled for ~3hours at the exact same issue and then realised. that the adaptavist library version of the rest-endpoint, has an extra-tab with the code for data center installations (https://library.adaptavist.com/entity/populate-tempo-dynamic-drop-down-using-a-rest-endpoint). It has this critical change of code with the telling comment:
// Adding 'application/javascript' is needed to prevent a browser error like this: script cannot be executed due to
// wrong MIME type.
// For example, the error in Chrome is: "Refused to execute script from '*' because its MIME type
// ('application/javascript') is not executable, and strict MIME type checking is enabled."
Response.ok(resp)
.header('Content-Type', 'application/javascript')
.build()
As soon as I used this variant it just worked.
grml...
Hope it saves someone the hours I had to spent. :D Have a nice day!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.