2011-07-27 2 views
3

Bing Maps RESTサービスを使用して、都市の名前を使用して都市の場所に関する情報を取得しようとしています。ブラウザに直接入力するとクエリ文字列が応答を返しますが、jqueryコード内では実行できないようです。私は以下を持っています:jquery getJSON/ajaxはRESTサービスからの応答を返しません

var cs = "san diego"; 
var qs = "http://dev.virtualearth.net/REST/v1/Locations?q=" + cs + "&type=xml&key=MY_BING_MAPS_KEY"; 
jQuery.getJSON(qs, function(hs){alert(hs)}); 

私は単にレスポンスで何も得られません(レスポンスコードは200です)。何が起こっているのだろうか?私はコードの他の部分で他のREST呼び出しを持っており、そこには全く問題はありません。

APIを使用するためのドキュメントはここにある:http://msdn.microsoft.com/en-us/library/ff701711.aspx

ありがとう!

** EDIT:実際に実行してBing MapsのからJSONPを強制することにより、これを克服する方法があり、以下:

$.ajax({ 
      url: "http://dev.virtualearth.net/REST/v1/Locations", 
     dataType: "jsonp", 
     data: { 
      key: key, 
      q: q 
     }, 
     jsonp: "jsonp", 
     success: function (data) { 

     } 
    }); 

**

+0

素晴らしいソリューションです。 –

答えて

1

あなたは、クロスドメインAJAX呼び出しをしようとしていますこれは、あなたのアプリケーションを実行しているドメインとは異なるドメインへのajax呼び出しを行っていることを意味します。あなたはそれをする方法を読む必要があります。 Here is a link

+0

お返事ありがとうございます!私が得ないのは、他のgetJSONがREST APIを呼び出して経路の指示を取得することです。このような回避策は一切ありません。何がありますか? – Haoqi

+0

見る!ほとんどの場合、他のサービスは(どこからでもajax呼び出しを使用できるように)このように動作するように構成されています。これはそうではないように見えます! – gred

+0

ありがとう、私は参照してください!他のRESTサービスがJSONPを返すように見えるので、この問題は回避されます。 – Haoqi

関連する問題