Angular jsonp请求coursera api给出错误
当我尝试在Angular中用jsonp方法请求coursera api时,出现以下错误。
拒绝从'https://api.coursera.org/api/courses.v1?callback=angular.callbacks._0'执行脚本,因为它的MIME类型('application / json')不可执行,严格的MIME类型检查已启用。
我已经通过其他答案,但找不到正确的解决方案。
这是我认为正确的代码,因为它可以成功获取其他CORS资源。 我不知道coursera api发生了什么。
var deferred = $q.defer();
var url = "https://api.coursera.org/api/courses.v1?callback=JSON_CALLBACK";
$http.jsonp(url).success(function(data) {
deferred.resolve(data);
})
.error(function(data, status, headers, config) {
deferred.reject(status);
});
return deferred.promise;
拒绝执行脚本...因为它的MIME类型('application / json')不可执行
URL https://api.coursera.org/api/courses.v1?callback=JSON_CALLBACK
正在返回JSON,而不是JSONP。
当您发出JSONP请求时,服务器必须使用JSONP格式的数据(这是JavaScript脚本的一种特殊形式)进行响应。 您正在与之通话的服务器不会。
这是我认为正确的代码,因为它可以成功获取其他CORS资源。
JSONP是我们在CORS存在之前使用的。 这是一个聪明,但肮脏,破解一些安全隐患。
如果您可以使用CORS,请改为使用CORS。 (服务器似乎也不授予CORS权限,这使您不得不通过另一台服务器而不是直接从客户端获取数据)
链接地址: http://www.djcxy.com/p/47603.html