我在jQuery中使用以下API调用来检索数据。我在末尾追加了?callback=?
,似乎解决了跨域问题,如果我不包括我得到跨域错误。如何从使用Ajax的visistat.com API交叉获取JSON或JSONP结果?
在Chrome上说:“资源解释为脚本,但MIME类型text/html
转移。”
响应返回是Content-Type: text/html; charset=UTF-8
。
我可以看到在Chrome 控制台 → 资源看着它的响应。但是,我如何操纵JavaScript中的响应?
$.getJSON("http://api.visistat.com/stats-api-v2.php?key=skx79q0pyu01.&qt=idd&d=json&sdate=2012-08-26&edate=2012-08-28?callback=?", function(json) {
console.log(json);
});
我无权访问更改API。
更新: 试图解决使用YQL例如http://jsfiddle.net/4VEHR/5/
貌似这个插件也可能是有用的:https://github.com/padolsey/jQuery-Plugins/tree/master/cross-domain-ajax/
该API链接不适用于我。我认为它有一些cookie用于验证您是否可以看到它。但请尝试使用[YQL](http://developer.yahoo.com/yql)作为代理 - 它可以读取JSON并返回JSONP或CORS。 – hippietrail
对不起,直接链接到该网页不起作用,看到它去到网站,然后点击“现场演示”,然后“statcaster API”。 感谢YQL的建议我认为我在这里取得了一些进展goo.gl/6k5Tg – user1629974
我没有找到任何文档的API。 'd'参数需要什么值除了'JSON'?我尝试过'XML'或者只是把它抛出去,但得到各种错误。 YQL的一个怪癖是,虽然它可以输入和输出JSON,但内部一切都是XML,格式之间的转换可能会使它们变得有点“怪异”。也许你可以使用'd'参数通过YQL获得更直接的数据格式。 – hippietrail