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

时间:2013-03-24 17:46:22

标签: javascript jquery getjson

从昨天开始,我一直在努力使用以下代码。

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');在PHP脚本上设置

  • 尝试使用chrome和firefox

  • 萤火虫上没有错误只显示空白的响应屏幕

  • 从localhost运行脚本,但如果它是跨域问题,为什么我能够向亚马逊发出类似的呼叫(没有params)? $.getJSON("http://freegeoip.net/json/",function(result){和常用的flickr示例一样正常。

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

提前致谢

OSSI

1 个答案:

答案 0 :(得分:0)

我认为这是一个跨域问题。我猜您可以使用freegeoip.net,因为您正在使用 JSONP 。尝试查看jQuery文档以了解如何使用JSONP:jQuery.getJSON()