gpt4 book ai didi

javascript - Angular jsonp 请求 coursera api 给出错误

转载 作者:行者123 更新时间:2023-12-03 06:06:26 25 4
gpt4 key购买 nike

当我尝试在 Angular 中使用 jsonp 方法请求 coursera api 时,出现以下错误。

Refused to execute script from 'https://api.coursera.org/api/courses.v1?callback=angular.callbacks._0' because its MIME type ('application/json') is not executable, and strict MIME type checking is enabled.

我已经浏览了其他答案,但找不到正确的解决方案。

这是我的代码,我认为它做得正确,因为它成功获取了其他 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;

最佳答案

Refused to execute script … because its MIME type ('application/json') is not executable

URL https://api.coursera.org/api/courses.v1?callback=JSON_CALLBACK 返回 JSON,而不是 JSONP。

当您发出 JSONP 请求时,服务器必须使用 JSONP 格式的数据(这是一种特殊形式的 JavaScript 脚本)进行响应。您正在交谈的服务器没有。

This is my code which I think is done correctly as it fetches other CORS resources successfully.

JSONP 是我们在 CORS 出现之前使用的。这是一个聪明但肮脏的黑客行为,具有一些安全隐患。

如果可以使用 CORS,请使用 CORS。 (服务器似乎也没有授予 CORS 权限,这使得您必须通过另一台服务器而不是直接从客户端获取数据)

关于javascript - Angular jsonp 请求 coursera api 给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39520773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com