我有一个php脚本,它在php数据中返回序列化。我尝试使用jQuery 1.7中的$ .ajax()方法接收这些数据。 Here就是一个例子。
$.ajax({
url: 'http://input.name/get.php?do=lookup' + '&domain=twittorama&tlds=.ru,.com,.net,.comf.ru',
type: 'GET',
dataType: 'text',
cache: 'false',
complete: function(res) {
alert('COMPLETE() done');
console.log(res);
}
});
在控制台中我只看到
Object { readyState=0, status=0, statusText="error"}
那么,我做错了什么?你能帮帮我吗?
UPD
有趣的提示:如果我使用JSONP dataType请求可以接收数据,但无法处理它。 Here is an example
$.ajax({
url: 'http://input.name/get.php?do=lookup',
data: 'domain=twittorama&tlds=.ru,.com,.net,.comf.ru',
dataType: 'jsonp',
cache: false,
success: function(data) {
alert("Data: "+data);
},
error: function(jqXHR, textStatus, errorThrown) {
alert("Error: "+textStatus);
console.log(jqXHR);
}
});
答案 0 :(得分:2)
而不是complete:
使用success:
,而res
将是您的ajax请求中返回的数据。
请记住使用error:
,因为您调用时出现错误,因为您的控制台输出中似乎可能存在错误。
代码:
$.ajax({
url: 'http://input.name/get.php?do=lookup',
data: 'domain=twittorama&tlds=.ru,.com,.net,.comf.ru',
cache: false,
success: function(data) {
alert("Data: "+data);
},
error: function(jqXHR, textStatus, errorThrown) {
alert("Error: "+textStatus);
console.log(jqXHR);
}
});
答案 1 :(得分:2)
您的代码可能没问题,但您试图违反same origin policy。基本上,如果您的网站是http://aaa.com/
,则无法将AJAX调用http://bbb.com/
。
有几种解决方法:
但是大多数人都要求双方都玩得很好。
答案 2 :(得分:1)
响应是完整函数的第二个参数:
$.ajax({
url: 'http://input.name/get.php?do=lookup' + '&domain=twittorama&tlds=.ru,.com,.net,.comf.ru',
type: 'GET',
dataType: 'text',
cache: 'false',
complete: function(res,response) {
alert('COMPLETE() done');
console.log(response);
}
});
更多信息:http://api.jquery.com/jQuery.ajax/
您还应该考虑使用JSON,而不是php序列化数据