jquery geoplugin使用问题

时间:2011-01-21 16:48:28

标签: jquery geolocation ip-geolocation

$.getJSON("http://www.geoplugin.net/json.gp?ip=117.201.92.17",function(data){alert(data);});

此代码运行正常,但url的响应为空。但是,如果我通过复制粘贴网址访问相同的URL,它的工作原理。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

根据this page (link)

  

AJAX和错误:标签无效

     

如果您正在使用jQuery   做AJAX调用JSON Web服务,   你可能会看到   Javascript错误错误:标签无效   要消除此错误,请标记   jsoncallback =?到网址的时候   对任何人进行jQuery Ajax调用   JSON webservice例如

$.getJSON("http://www.geoplugin.net/json.gp?jsoncallback=?",
function (data) {
  for (var i in data) {
      document.write('data["i"] = ' + i + '<br/>');
  }
);

所以我添加了created a fiddle here (link)以显示它正常工作。

答案 1 :(得分:0)

http://api.jquery.com/jQuery.getJSON/州的文档:

  

重要:从jQuery 1.4开始,如果是   JSON文件包含语法错误,   请求通常会无声地失败。   避免频繁手工编辑JSON   数据就是这个原因。 JSON是一个   数据交换格式与语法   比那些更严格的规则   JavaScript的对象文字符号。   例如,表示所有字符串   在JSON中,它们是否属性   或值,必须包含在内   双引号。有关JSON的详细信息   格式,请参阅http://json.org/

是否以有效的JSON格式返回数据?为什么不尝试另一种方法:

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

这样你可以删除json dataType并确保调用正在返回任何数据,json或不返回。

还要记住,由于浏览器安全限制,ajax请求受同一原始策略的约束;请求无法成功从其他域,子域或协议中检索数据。