【问题标题】:jquery geoplugin usage problemjquery geoplugin使用问题
【发布时间】: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


    【解决方案1】:

    根据this page (link)

    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) 以显示它有效。

    【讨论】:

      【解决方案2】:

      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 请求受制于同源策略;请求无法从不同的域、子域或协议中成功检索数据。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-08
        • 2017-10-26
        相关资源
        最近更新 更多