2012-06-25 52 views
0

我一直在寻找了一会儿,想不通为什么我没有得到一个Ajax请求的响应对象:jQuery的AJAX脚本请求成功,没有数据

$(document).ready(function(){ 
$.ajax({ 
    type: 'GET', 
    dataType: 'script', 
    crossDomain: true, 
    url: 'http://api.netimpact.com/qv1.php?key='+apikey+'&qt=geoip&d=json&q='+userip, 
    success: function(jqXHR, textStatus) { //both parameters come in as undefined 
     console.log(jqXHR); 
    }, 
    error: function(xhr, code){ 
     console.log('error'); 
    } 
    }); 
}); 

的响应应该看像:

[["Tokyo","Tokyo","Japan","Open Computer Network","35.6850","139.7514","JP"]] 
+0

你得到的错误是什么?如果你正在调用一个跨域,你应该检查你在响应中是否有正确的标题 – Jorge

+1

你为什么要设置dataType ='script'?那看起来像JSON –

+0

数据类型无效。 –

回答

0

你可以尝试$.getJSON()代替:

http://api.jquery.com/jQuery.getJSON/

描述:使用GET HTTP请求从服务器加载JSON编码的数据。

如果URL包含字符串“callback =?” (或类似的,由服务器端API定义),请求将被视为JSONP。有关更多详细信息,请参阅$ .ajax()中关于jsonp数据类型的讨论。

或切换到的dataType JSONP:

$.ajax({ 
    url: url, 
    dataType: 'jsonp', 
    data: data, 
    success: callback 
}); 

“JSONP”:使用JSONP荷载在JSON块。添加额外的“?callback =?”到您的URL的末尾来指定回调。

+0

这不适用于跨域。 – 2012-06-25 12:49:54

+1

@IntoTheVoid正确他必须使用JSONP(如果服务器提供JSONP) – jantimon

+0

尝试与jsonp,仍然获得状态0.我可以看到通过Chrome的网络调试器通过请求虽然..不知道我在做什么错 –

相关问题