Sha*_* H. 6 javascript ajax jquery json
我正在尝试向我无法控制的域上的API发出简单的JSON get请求.
我的代码很简单:
$(document).ready(function () {
$.ajax({
type: 'GET',
url: 'http://pubapi.cryptsy.com/api.php?method=marketdatav2',
success: function (data) {
console.log(data);
}
});
});
Run Code Online (Sandbox Code Playgroud)
但由于这是一个跨域请求,我在Chrome控制台中收到此错误:
XMLHttpRequest cannot load http://pubapi.cryptsy.com/api.php?method=marketdatav2. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://fiddle.jshell.net' is therefore not allowed access.
当我尝试添加参数时dataType: 'jsonp'
,Console返回此错误:
未捕获的SyntaxError:意外的令牌:
但是当我检查Chrome中的Network选项卡时,我看到在Headers下,Status Code为200 OK,我可以在Response选项卡中看到完整的响应,但是控制台仍然显示"Unexpected Token:"错误和JQuery JSON请求仍然失败.
这是JS Fiddle链接:http://jsfiddle.net/6Qcq2/您可以看到相同的结果
我试过在http://www.hurl.it上运行网址,它显示状态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);
}
});
});
Run Code Online (Sandbox Code Playgroud)
演示:http://jsfiddle.net/6Qcq2/1/
归档时间: |
|
查看次数: |
24972 次 |
最近记录: |