私は多くのデモや例を試しました。そして、サービス リクエストで問題が発生したときに、ここで最終的に良いアドバイスを得ることができました。とにかく、リモートサーバーからデータを取得するために io.script.get を使用していますが、問題は、コールバックパラメーターが未定義であるか、無効なラベルを取得する場合があることです。
function searchGoogle() {
// Look up the node we'll stick the text under.
var targetNode = dojo.byId("rules");
var jsonpArgs = {
url: "http://localhost/WcfServices/WcfInstanceRules2/Service1.svc/RetrieveData",
callbackParamName: "callback",
content: {
screenName: "dpjo"
},
load: function (data) {
// Set the data from the search into the viewbox in nicely formatted JSON
targetNode.innerHTML = "<pre>" + dojo.toJson(data, true) + "</pre>";
},
error: function (error) {
targetNode.innerHTML = "An unexpected error occurred: " + error;
}
};
dojo.io.script.get(jsonpArgs);
}
dojo.ready(searchGoogle);
フィドラーでjson応答が表示され、問題ないように見えますが、ブラウザーではエラーが発生します。私はクロスドメインの問題に苦しんでいるので、これはイライラします. 私は .net 4.0 を使用しており、コールバックを明示的に定義する必要はありません。コールバック名を追加し、json をコールバック名でラップして、json 応答を手動で編集しようとしました。
編集:
Web サービスから返されるデータのサンプル:
{"rules":[{"value":"AllState"},{"value":"Cidade de Goa beach"},
{"value":"Euro 2012"},{"value":"Euro&2012"},
{"value":"Euro2012"}, {"value":"European&Championship"},
{"value":"Holiday Inn Resort"},{"value":"Holiday Inn Resort goa"},
{"value":"Hotel Goa"},{"value":"Hyatt Goa"},{"value":"I buy car}]}