这是对我的web服务的跨域AJAX请求。
$(document).ready(function(){
$.ajax({
url: 'http://storage.loc/api/getowners/?host=http://www.mail.ru/&callback=parseJSON',
dataType: 'jsonp',
crossDomain: true,
type: 'GET',
jsonp: false,
jsonCallback: 'parseJSON',
error: function(){
alert('Error');
},
complete: function(jqXHR, textStatus){
alert(textStatus);
}
});
});
function parseJSON(data)
{
var links = [];
$.each(data.users, function(key,value) {
links.push = '<a href="#" id="'+value+'"onClick="getData(this)">'+value+'</a><br />';
});
}
响应是:
parseJSON({"users":{"user0":"rulezz87","user1":"karazyab"}})
响应似乎是正确的,但textStatus是"parsererror"和数组在parseJSON()是空的。我不是jQuery专业人员,所以你能告诉我,我做错了什么吗?
响应不正确,因为用户列表不是数组。它应该是这样的:
{ "users" : [ {"user0" : "rulezz87"}, {"user1" : "karazyab"} ] }
所以,错误消息是正确的,它也不能从JSON解析的事实。