0

作成したWebサービスを呼び出すJavaScriptを作成しようとしています。このWebサービスは別のWebサービスの一部です

function ping() {
  $.ajax({
    url: "http://myserver/OtherSite/ping?$format=json",
    dataType: "jsonp",
    type: "GET",
    success: ping_Succeeded,
    error: ping_Failed
  });
}

function ping_Succeeded(result) {
  alert("success");
}

function ping_Failed(e1, e2, e3) {
  console.log(e1 + "\n" + e2 + "\n" + e3);
}

このコードを実行すると、FiddlerでWebサービスへのリクエストに問題がないことに気付きます。200が返されます。私が期待しているJSONはそこにあります。ただし、JavaScriptコンソールに、「Uncaught SyntaxError:UnexpectedToken:」というエラーが表示されます。

コンソールを見ると、次のことに気づきました。「メッセージ:「jQuery18209005181000102311_1352904505837が呼び出されませんでした」。

何が間違っているのかわかりません。誰かが私のコードの何が問題なのか教えてもらえますか?

ありがとうございました

4

1 に答える 1

0

JSONをコールバック呼び出しにラップすることができないようです。dataType:"jsonp"jqueryが原因で、次のようなURLにリクエストが送信されます。

OtherSite/ping?$format=json&callback=jQuery18204326352379284799_1352906037982&_=1352906037995

したがって、コールバックから名前を取得し、(サーバー上で)次のように応答をラップする必要があります。

 jQuery18204326352379284799_1352906037982({ "d":{ "result":"Test 37" } })

dataType:"jsonp"または、次のように置き換えることができますdataType:"json"

于 2012-11-14T15:17:06.777 に答える