来自 angular 应用程序的 $http.jsonp 调用返回错误 [英] $http.jsonp call from angular app returns errors
问题描述
下面是我创建的一个角度服务,用于通过 jsonp 从 Indeed 求职 api 返回搜索结果
Below is a angular service I created to return search results from Indeed job search api via jsonp
(function() {
"use strict";
angular
.module("career.resources")
.factory("JobSearchService", ["$http", jobsearchService]);
function jobsearchService($http) {
return{
getSearchResults: getSearchResults
};
function getSearchResults(publisherKey,keywords,location,jobType,limit) {
return $http.jsonp("http://api.indeed.com/ads/apisearch?", {params: {
"publisher": publisherKey,
"v": "2",
"format": "json",
"callback": "JSON_CALLBACK",
"q": keywords,
"l": location,
"sort": "",
"radius": "",
"st": "",
"jt": jobType,
"start": "0",
"limit": limit,
"fromage": "",
"highlight": "1",
"filter": "1",
"userip": "1.2.3.4"
}});
}
}
}());
当这个执行时,它抛出这个错误:
When this executes, it throws this error:
拒绝从 (url) 执行脚本,因为其 MIME 类型 ('application/json') 不可执行,并且启用了严格的 MIME 类型检查
这个 jsonp 请求应该返回 application/javascript 吧?我很困惑.
This jsonp request should return application/javascript right? I'm confused.
更新
这个仅供参考,我正在绞尽脑汁.任何帮助将不胜感激...
I'm racking my brain with this FYI. Any help would be greatly appreciated...
推荐答案
在响应中外部设置 content-type:application/javascript
标头.
Externally set content-type:application/javascript
header in the response.
严格的 MIME 类型检查只会在 chrome 中产生问题.. 但是,在 Firefox 中工作正常.
Strict MIME type checking only creates issue in chrome .. however, works fine in firefox.
查看更多参考:
Chrome 拒绝执行由于 MIME 类型错误导致的 AJAX 脚本
您可以轻松地在 Php、Java、Node js 等中设置响应头.
You can easily set response header in Php, Java, Node js etc..
这篇关于来自 angular 应用程序的 $http.jsonp 调用返回错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!