2

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

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('内容类型:应用程序/json'); 在 php 脚本上设置

  • 在 chrome 和 firefox 上试过

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

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

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

提前致谢

奥西

4

1 回答 1

0

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

于 2013-03-24T17:52:46.267 回答