【发布时间】:2011-01-21 16:48:28
【问题描述】:
$.getJSON("http://www.geoplugin.net/json.gp?ip=117.201.92.17",function(data){alert(data);});
此代码运行良好,但 url 的响应为空。但是,如果我通过复制粘贴 URL 来访问相同的 URL,它就可以工作。任何想法为什么?
【问题讨论】:
标签: jquery geolocation ip-geolocation
$.getJSON("http://www.geoplugin.net/json.gp?ip=117.201.92.17",function(data){alert(data);});
此代码运行良好,但 url 的响应为空。但是,如果我通过复制粘贴 URL 来访问相同的 URL,它就可以工作。任何想法为什么?
【问题讨论】:
标签: jquery geolocation ip-geolocation
AJAX 和错误:标签无效
如果您使用 jQuery,例如 对 JSON 网络服务进行 AJAX 调用, 你可能会看到 Javascript错误错误:标签无效 要消除此错误,请标记 json回调=?到 url 时 使 jQuery Ajax 调用任何 JSON 网络服务,例如
$.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) 以显示它有效。
【讨论】:
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 数据类型并确保调用正在返回任何数据,无论是否为 json。
还要记住,由于浏览器的安全限制,ajax 请求受制于同源策略;请求无法从不同的域、子域或协议中成功检索数据。
【讨论】: