gpt4 book ai didi

javascript - JSON Get请求使用JQuery(跨域)

转载 作者:数据小太阳 更新时间:2023-10-29 05:07:55 26 4
gpt4 key购买 nike

我正在尝试向我无法控制的域上的 API 发出简单的 JSON get 请求。

我的代码很简单:

$(document).ready(function () {
$.ajax({
type: 'GET',
url: 'http://pubapi.cryptsy.com/api.php?method=marketdatav2',
success: function (data) {
console.log(data);
}
});
});

但由于这是一个跨域请求,我在 Chrome 控制台中收到此错误:

XMLHttpRequest 无法加载 http://pubapi.cryptsy.com/api.php?method=marketdatav2。请求的资源上不存在“Access-Control-Allow-Origin” header 。因此不允许访问来源 'http://fiddle.jshell.net'。

当我尝试添加参数 dataType: 'jsonp' 时,控制台返回此错误:

Uncaught SyntaxError: Unexpected token :

但是当我检查 Chrome 中的“网络”选项卡时,我看到在标题下状态代码是 200 OK,我实际上可以在“响应”选项卡中看到完整的响应,但控制台仍然显示“意外 token :”错误和JQuery JSON 请求仍然失败。

这是 JS Fiddle 链接:http://jsfiddle.net/6Qcq2/可以看到相同的结果

我试过在 http://www.hurl.it 上运行 url它向我显示 Status OK 和响应,所以我一定是做错了什么。

我几乎浪费了一整天的时间试图弄清楚如何解决这个问题。

非常感谢您的帮助。

最佳答案

API 的响应是 JSON,而不是 JSONP,因此仅更改数据类型没有帮助。

您可以使用发出请求并将 JSON 转换为 JSONP 的代理:

$(document).ready(function () {
$.ajax({
type: 'GET',
url: 'http://jsonp.guffa.com/Proxy.ashx?url=pubapi.cryptsy.com%2fapi.php%3fmethod=marketdatav2',
dataType: 'jsonp',
success: function (data) {
console.log(data);
}
});
});

演示:http://jsfiddle.net/6Qcq2/1/

关于javascript - JSON Get请求使用JQuery(跨域),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21506010/

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