$.getJSON - 在 url 中使用参数时无法捕获响应

$.getJSON - unable to catch response when using parameters in url

本文关键字:响应 参数 getJSON url      更新时间:2023-09-26

从昨天开始,我一直在为以下一段代码而苦苦挣扎。

function findLocation(){
  alert(1);
  $.getJSON( "http://www.omc4web.com/geoip/geoip.php", 
    {ip: "127.0.0.1",
    callingurl: "www.thissite.com" }, 
    function( result ){
      alert(2);
      $.each(result, function(i, field)
      {
        alert(i); 
        if(i=="country")
        { 
          country_code = field;
        }
      });
    })
}

它似乎不想超越 php 脚本的调用。返回的数据是{"country":"US","store":"US"}但该函数似乎不想处理它,我从来没有收到警报(2(。我已经在 php 脚本中放置了监视器,我可以看到它确实被调用了正确的参数,并且它确实返回了预期的数据。

如果从浏览器调用 http://www.omc4web.com/geoip/geoip.php?ip=127.0.0.1&callingurl=www.thissite.com,您将看到返回数据。

调用不带参数的 URL 的同一段代码行为正确,但在上述设置中则不然。

我剩下的几根头发将不胜感激。

附加信息:

  • header('Content-type: application/json'(; set on php script

  • 在Chrome和Firefox上尝试过

  • Firebug上没有显示错误,只有一个空白的响应屏幕

  • 从本地主机运行脚本,但如果这是一个跨域问题,为什么我可以对 Amazon 进行类似的调用(没有参数(? $.getJSON("http://freegeoip.net/json/",function(result){和流行的flickr示例一样工作正常。

  • 我正在使用<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

提前致谢

奥西

我认为这是一个跨域问题。我想你能够使用freegeoip.net因为你使用的是JSONP。尝试查看 jQuery 文档以了解如何使用 JSONP:jQuery.getJSON((