-1

请帮我修复以下代码,它总是给出错误

 $.ajax({
 type: "GET",
     url: "http://herokory.herokuapp.com/autocomplete/jsonpCallback/a",
     dataType:"jsonp"
 }).error(alert('error'));

网址http://herokory.herokuapp.com/autocomplete/jsonpCallback/a支持 jsonp

4

3 回答 3

1

您传递的将方法设置为 jsonp 的键dataType不是datatype. 对象键区分大小写

此外,在失败时,jquery 将发送 XHR、textStatus 和 errorThrown。为什么不看看那些?:

...
.done(function (XHR, textStatus, errorThrown) {
    console.log(XHR, textStatus, errorThrown);
});

您需要在 ajax 调用之外定义 jsonpCallback:

function jsonpCallback(data) {
    // do stuff with data
    console.log(data)
}
于 2012-08-21T18:31:08.007 回答
1

使用 reponseText 获取有关错误的更多详细信息。你们在同一个域吗?

$.ajax({
 type: "GET",
 url: "http://herokory.herokuapp.com/autocomplete/jsonpCallback/a",
 datatype:"jsonp"
 }).responseText
于 2012-08-21T18:32:23.343 回答
0

使用JSONP,您需要设置一个回调函数来处理响应。在这种情况下:

http://herokory.herokuapp.com/autocomplete/jsonpCallback/a

jsonpCallback在 URL 中指定为函数的名称。因此,在发出 JSONP 请求之前,您需要有一个在全局范围内可见的具有该名称的函数:

function jsonpCallback(data) {
    console.log(data);
}

$.ajax({
type: "GET",
    url: "http://herokory.herokuapp.com/autocomplete/jsonpCallback/a",
    dataType:"jsonp"
}).error(alert('error'));
于 2012-08-21T18:56:36.840 回答