2009-08-26 5 views
2

これはおそらく非常にばかげた質問です。私はhttp://www.hostip.info/use.htmlによって提供されるAPIを使用して、自分のIPアドレスに基づいてユーザーアドレスを見つけるためにジオロケーションを実行しようとしています。私は次のコードでjqueryと組み合わせてこれを使用しています:javipでホチップを使ったジオロケーション

$.get("http://api.hostip.info/get_html.php", function(data){ 
    alert("Data Loaded: " + data); 
}); 

悲しいことに、これは動作していないようです。アラートは決してトリガーされないので、コールは決して返されないと仮定します。誰もこれを前にしたことがありますか?ありがとう

答えて

4

私はそれらへの呼び出しが成功したとは思わない。ドメイン間の制限により、結果データを読み取ることができなくなる可能性があります。 hostipがJSONP APIを提供していれば、それは使えるだろうが、自分のサイトには何の言及も見なかった。

+0

よく[hostipはJSON APIを提供しています](http://www.hostip.info/use.html)、[CORS](http://en.wikipedia.org/wiki/Cross-origin_resource_sharing)をサポートしています。 Internet Explorer 9を含む一部のブラウザはCORSをサポートしていません。 – hippietrail

-1

javascriptから外部ドメインを呼び出すことはできません。これは間違いなく問題です。リモートページを取得するサーバー上にプロキシスクリプトを設定するか、上記のようにJSONPを実装するサービスを見つける必要があります。

+0

最新のブラウザを使用してJavaScriptから外部ドメインを呼び出すことができるようになりました。それらのほとんどは 'CORS'をサポートし、' http:// api.hostip.info/get_json.php'は 'CORS'もサポートしています。 – hippietrail

0

XMLデータに対してクロスドメインコールを行うことはできません。 YUI GET UtilityやjQueryの経由を使用して

http://ipinfodb.com/ip_query.php?ip=999.999.999.999&output=json 

あなたができるクロスドメインコール:他のサイトには、JSONインタフェースを提供します。

2

GoogleのAJAX APIを使用している場合は、Client Location機能を使用して場所を取得するのが簡単です。クロスドメインコールは必要ありません。他の人が指摘しているよう

if (google.loader.ClientLocation) { 
    var lat = google.loader.ClientLocation.latitude; 
    var lon = google.loader.ClientLocation.longitude; 
    ... 

そうでない場合、あなたはJSONPを提供するサービスが必要ですか、あなたはあなたのためのデータを得るためにあなた自身のサーバー上でプロキシを記述する必要があります。

関連する問題