2009-03-19 9 views
8

私が書いたC#WebサービスでjQueryとJSONを使用しようとしています。何があっても、次のコードはXMLでのみ出力されます。C#WebサービスはJSON、XMLのみを出力しません

Webサービスコード

[WebMethod] 
[ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
public string HelloWorld() { 
    return "Hello World!"; 
} 

私はまた、これらの属性は、クラスに割り当てられている

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
[ScriptService] 

jQueryのコード

$.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: "ScheduleComputerDS.asmx/HelloWorld", 
    data: "{}", 
    dataType: "jsonp", 
    success: function(data) { 
     alert(data); 
    } 
}); 

ASMXページが常にreturコンテンツタイプ "text/xml"としてnsを指定します。私が行方不明のものは何ですか?

EDITS:カップルの答えを受けて

私はちょうど「JSON」としてデータ型を持っている場合、コンテンツがまだXMLであるとjQueryはまた私のコールバック関数を呼び出すことはありません。 「&コールバック=?」を追加するとURLにIISがHTTP 500エラーをスローします。

私のクラスは "System.Web.Services.WebService"から継承します。

あなたの人の回答を調べることから、私はWCFを使いこなす必要があるようです。残念ながら、返されるJSONはMS Ajaxのために設計されていますので、私の使用のためには無駄な膨大なものになります。私はJayrockのようなオープンソースライブラリやそれに類するものを調べるかもしれません。

ありがとうございました!

+0

私はこのコメントが他のものを参照してどのように見えるのかわかりません... 私はちょうど "json"としてデータ型を持っている場合、コンテンツはまだXMLであり、jQueryも呼び出されません私のコールバック関数。私が "&コールバック=?" URLにIISがHTTP 500エラーをスローします。 – TheDude

+0

@TheDude - オリジナルの質問を編集して、この情報を追加することができます。質問セクションの左下にあるタグの下に編集リンクがあります。 –

+0

WCF RESTスターターキットを使用できる場合は、プレビュー2 – bendewey

答えて

2

、ScriptServiceだけでサービスが自動的に(エンドポイントアドレスに/のJSを追加することによって - ScheduleComputerDS.asmxの/のJSをお使いの場合)のJavaScriptプロキシを作成することを可能にする属性。それはあなたがやろうとしている方法でサービスの操作を呼び出すことはできません。

代わりに、HTTP GET経由で適切な形のURIを送信することでアクセスできるRESTful WCFサービス(.NET 3.5が必要)を使用できます。

6

私はタイプミスがあると思う:

dataType: "jsonp", 

は次のようになります。

dataType: "json", 
+0

をリリースしました。 )私は最近このミスをしましたが、私はそこに "スクリプト"を持っていました。例からコピーして貼り付けた –

+0

ああ、いいえ+1? lol – eduncan911

+1

私はその古い記事を知っています、私はちょうど間違った方法で落ちていないことを確認したい、その 'jsonp'の誤植は、チェックしてくださいhttp://json-p.org/ – Luis

関連する問題