0

Jquery ajax リクエストを使用して、別のドメインでレスト サービスを呼び出したいと考えています。

私のコードは次のとおりです。ad1、city、sp、pc、cnはgetElementbyIDによって取得されます。

url='http://admin:admin@*******:***/rest/arun_code/results.json'+'?Data.AddressLine1='+ad1+'&Data.City='+city+'&Data.StateProvince='+sp+'&Data.PostalCode='+pc+'&Data.Country='+cn;
   $.ajax({
       type: "GET",
       url: url,
       crossDomain: true,
       async: false,
       dataType: "jsonp",
       contentType: "application/json",
       jsonpCallback: 'jsonCallback',
       success: function (data) {
           alert(data.success);
           alert(resultTemp.Output);

       }

   });

   jsonCallback = function(resultTemp){
       alert("In callback function");
       alert(resultTemp);
     };

私の Web ブラウザ コンソールでは、次の例外が発生しています。

Uncaught SyntaxError: Unexpected token :  at results.json :1

Chrome 開発者ツールを使用すると、応答を読み取ることができます。これはまったく問題ありません。

{"Output":[{"Latitude":"43.643286156655485","Longitude":"-79.37559537260091"}]}

応答のあるアラートが表示されません。出力をアラートとして取得し、アクセスできるようにしたい..

私のサーバー出力はjsonであり、クロスドメインリクエストにjsonpを使用する必要があります.出力へのアクセスを取得する方法???? 私を助けてください。

ありがとうございました

4

1 に答える 1

3

問題は、応答が JSONP でないことです。ウィキペディアには、JSONp がどのように機能するかについての非常に良い説明があります: http://en.wikipedia.org/wiki/JSONP

すなわち

{
    "Name": "Foo",
    "Id": 1234,
    "Rank": 7
}

になる

jsonCallback({"Name": "Foo", "Id": 1234, "Rank": 7});

既存のサーバーで通常の AJAX 要求を実行して、それに応じて応答することを期待することはできません。適切な JSONp 形式で応答するようにサーバーを構成する必要があります。

于 2013-07-15T09:33:33.373 に答える