Reputation: 21
Hello I'm currently working on a script that must extract information from a third party feed which returns a json file. I am not able to use CORS since I do not have server access, so based on desk research I was informed to use JSONP. I am able to see the callback (response) in chrome network's tab but I can't read the file in the chrome log. The point is that when I execute the following code I get the Error Message below. I can't turn off mime type checking. I've tried to have a look on other questions but couldn't find anything similar. What should be done?
"Refused to execute script from 'https://siteurl.com/json=jsonp&callback=jQuery321030035432758818903_1501098778362&_=1501098778363' because its MIME type ('application/json') is not executable, and strict MIME type checking is enabled. "
<script src="jquery.js"></script>
<script>
$.ajax({
type: 'GET',
url: 'siteurl.com/json?callback=jsonp',
dataType: 'jsonp',
xhrFields: {
withCredentials: false
},
headers: {
"Accept" : "application/json; charset=utf-8",
"Content-Type": "application/javascript; charset=utf-8",
"Access-Control-Allow-Origin" : "*"
},
success: function (result) {
console.log(result);
},
error: function (xhr, errorText) {
console.log('Error ' + xhr.responseText);
}
});
</script>
Take a look at the network tab:
Upvotes: 2
Views: 4190
Reputation: 943556
JSONP is not JSON! JSONP is a JavaScript program consisting of a function call with one argument.
The correct Content-Type is application/javascript
.
I am not able to use CORS since I do not have server access, so based on desk research I was informed to use JSONP.
You can only use JSONP if the site provides JSONP. (These days they should use CORS instead, it is better in every way). Just slapping callback
in a query string will not magically force a site to provide JSONP and break the same origin policy for you. The site has to explicitly expose the data to other sites.
Upvotes: 2
Reputation: 624
It's a problem with Content-Type.
Content-Type :
application/json
is correct for JSON but its not for JSONP.Content-Type :
application/javascript
is for JSONP.
Please check this : What is the correct JSON content type?
Upvotes: 1