gpt4 book ai didi

jquery - 使用 jquery jsonp 访问 Coursera api 中的数据

转载 作者:行者123 更新时间:2023-12-01 00:02:43 26 4
gpt4 key购买 nike

今天,我在阅读 Coursera catalog 后尝试使用 jquery 访问 coursera api文档。我写了一个代码,得到一个错误 No 'Access-Control-Allow-Origin' header is present on the requested resources. 于是google了一下,发现Jsonp可以用来发出跨域请求。所以我只是使用 $.ajax 函数向此 url 发出请求或者说这个simple url和其他一些这样的网址,但失败了。

网址上的数据类似于 {"elements":[{"id":2,"shortName":"ml","name":"Machine Learning","links":{}}] ,“链接”:{}}

我编写了以下代码。

$(document).ready(function() {
$.ajax({
url: "https://api.coursera.org/api/catalog.v1/courses/2",
type: "GET",
dataType: 'jsonp',
jsonpCallback: 'localJsonpCallback',
contentType: 'application/json',
success: function(){
alert("success");
},
error:function(jqxhr, textStatus, error){
alert("textStatus : " + textStatus + "\n error" + error);
}
});

function localJsonpCallback(data) {
alert("localJsonpCallback : " + data);
}
});

上面的代码失败并转到错误处理程序,其打印的错误是,textstatus:parseErrorError:localJsonpCallback was not called。我没有明白代码有什么问题。此外,在控制台中,当使用 url https://api.coursera.org/api/catalog.v1/courses/2 时,我收到错误 Uncaught SyntaxError: Unexpected token :2?callback=localJsonpCallback&_=1418037208234:1 .

是否需要使用jsonp回调函数?我们不能在成功处理程序中处理直接响应吗?

最佳答案

这有效

可以直接在success回调中处理

$(document).ready(function() {
$.ajax({
url: "https://api.coursera.org/api/catalog.v1/courses/2",
type: 'GET',
dataType: "json",
success: function(data) {
console.log(JSON.stringify(data,null,4));
}
});
});

已返回

 {
"elements": [
{
"id": 2,
"shortName": "ml",
"name": "Machine Learning",
"links": {}
}
],
"linked": {}
}

希望这有帮助

关于jquery - 使用 jquery jsonp 访问 Coursera api 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27357022/

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