【发布时间】:2016-10-28 19:24:09
【问题描述】:
下面是我创建的一个角度服务,用于通过 jsonp 从 Indeed 求职 api 返回搜索结果
(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"
}});
}
}
}());
当它执行时,它会抛出这个错误:
拒绝从 (url) 执行脚本,因为它的 MIME 类型 ('application/json') 不可执行,并且启用了严格的 MIME 类型检查
这个 jsonp 请求应该返回 application/javascript 对吗?我很困惑。
更新
我正在为这个 FYI 绞尽脑汁。任何帮助将不胜感激...
【问题讨论】:
-
发送 JSONP 请求不会自行改变服务器的响应。服务器还必须发回一个有效的 JSONP 响应。您调用的 API 是否支持 JSONP?您可能想尝试将格式更改为
"format": "jsonp"来尝试一下。 -
使用
application/javascriptmime 类型 -
@leepowers 我不认为这个 API 接受 jsonp...我刚刚阅读了文档,它只提到了 xml 和 json。我尝试对 $http.get 做同样的事情,但我遇到了一个完全不同的问题here
标签: javascript angularjs json rest api