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"}が、関数はそれを処理したくないようで、alert(2) にはなりません。PHPスクリプトにモニターを配置しましたが、実際に正しいパラメーターで呼び出され、期待されるデータが返されることがわかります。

ブラウザからhttp://www.omc4web.com/geoip/geoip.php?ip=127.0.0.1&callingurl=www.thissite.comを呼び出すと、データが返されることがわかります。

パラメータなしで URL を呼び出す同じコードは正しく動作しますが、上記の設定では正しく動作しません。

私の残りのいくつかの髪は、これについての助けをいただければ幸いです.

追加情報:

  • header('Content-type: アプリケーション/json'); PHPスクリプトで設定

  • クロムとファイアフォックスで試してみました

  • 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>

前もって感謝します

オッシ

4

1 に答える 1

0

クロスドメインの問題だと思います。JSONPfreegeoip.netを使っているので使えると思います。JSONP の使用方法については、jQuery のドキュメントを参照してください: jQuery.getJSON()

于 2013-03-24T17:52:46.267 に答える