2014-01-26 84 views
2

1)我试图使用由netrunnerdb.com提供的crossdomain api。该网站需要一个jsonp请求或拒绝请求。

如果您想了解更多有关api的信息,请访问网站,网页底部有一个关于api的链接。Jquery,JSONP错误200,解析错误,同时收到消息

2)这不是我的API,我打电话

- 我没有对服务器的控制权,而我认为问题是,JSON是不被认为jQuery的将作为函数内返回回调。

3)我的Ajax请求:

var path="http://netrunnerdb.com/api/search/r<t d:c" 
$.ajax({ 
    type:   "GET", 
    url:   path,   
    cache:   true, 
    dataType:  "jsonp", 
    error:   function(xhr, ajaxOptions, thrownError) { 
     alert(xhr.status); 
     alert(ajaxOptions); 
     alert(thrownError); 
    }, 
}); 

这里是由请求发送的网址:

http://netrunnerdb.com/api/search/r%3Ct%20d:c%20?callback=jQuery1110010968961869366467_1390750866847 

4)回应:

我得到一个错误200抛出,我收到一个parseerror,然后通知json回调没有被调用。答案只是畸形吗?有没有解决方法?在chrome中,如果我通过直接浏览上面的URL将整个响应复制到控制台并设置一个等于它的变量,它就可以很好地解析为一个数组。

回答

2

您得到的响应为JSON而不是JSONP,因为API无法识别jQuery的回调。 API期望jsonp参数中的回调名称,而不是callback

此添加到您的Ajax调用的属性,使jQuery的在URL中使用jsonp代替callback

jsonp: 'jsonp',