3

$.ajax クエリから JSON を WCF サービスに投稿しようとしています。これが私のパラメータのセットです:

$.ajax(
{
 type: "POST",
 url: theurl,
 data: '{name:"Gabriel"}',
 dataType: "json",
 async:false,
 timeout: 5000,
 //success and error callbacks here...

WCF メソッド コントラクトは次のようになります。

[OperationContract]
        [WebInvoke(Method = "*", 
                   RequestFormat = WebMessageFormat.Json,
                   BodyStyle = WebMessageBodyStyle.Bare,
                   UriTemplate = "/Sample/POST")]
        string postSample(Stream jsondata);

WCF はリモート サーバーで実行されています (クロスドメイン機能と Access-Control-Allow-Origin がそこで有効になっています)。w3wp.exe を使用してデバッグすると、WCF メソッドがヒットし、POST 本体は正しいのに、サービス メソッドが返された後 (単純な JSON または空の文字列) が表示されます。

[Exception... "Failure"...> :: line 4"  data: no]

Firefox で。Safari と Chrome のスロー:

Error: NETWORK_ERR: XMLHttpRequest Exception 101

私はVS2010とjQuery 1.7.xxを使用しています

私が間違っていることは何ですか?どんな提案でも大歓迎です。

4

1 に答える 1

1

私はすでに解決策を見つけました: WCF メソッドの先頭に次の行を追加しました:

WebOperationContext.Current.OutgoingResponse.Headers.Add("Access-Control-Allow-Origin", "*")

そしてそれは魅力のように機能しました。みんなありがとう!

于 2013-01-22T16:02:38.597 に答える