5

次のajax呼び出しは、IE10を除くすべてのブラウザーで機能します(IE9標準モードに設定していない場合)。フィドラーで見ると、パラメーターがie10で渡されていないように見えます。

var paramArray = '{"ID":1}';   

 $.ajax({
        type: 'POST',
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        url: '/assets/services/coreWebServices.svc/GetCategoriesWithoutColumns',
        data: paramArray,
        success: successFn,
        error: errorFn
    });

次のエラーをスローします

The OperationFormatter could not deserialize any information from the Message because the Message is empty (IsEmpty = true).
    at System.ServiceModel.Dispatcher.PrimitiveOperationFormatter.DeserializeRequest(Message message, Object[] parameters)

System.Runtime.Serialization.SerializationException: Error in deserializing body of request message for operation 'GetCategoriesWithoutColumns'. The OperationFormatter could not deserialize any information from the Message because the Message is empty (IsEmpty = true).
    at System.ServiceModel.Dispatcher.PrimitiveOperationFormatter.DeserializeRequest(Message message, Object[] parameters)\u000d\u000a
    at System.ServiceModel.Dispatcher.DemultiplexingDispatchMessageFormatter.DeserializeRequest(Message message, Object[] parameters)\u000d\u000a
    at System.ServiceModel.Dispatcher.UriTemplateDispatchFormatter.DeserializeRequest(Message message, Object[] parameters)\u000d\u000a
    at System.ServiceModel.Dispatcher.CompositeDispatchFormatter.DeserializeRequest(Message message, Object[] parameters)\u000d\u000a
    at System.ServiceModel.Dispatcher.DispatchOperationRuntime.DeserializeInputs(MessageRpc& rpc)\u000d\u000a
    at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)\u000d\u000a
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)\u000d\u000a
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc)\u000d\u000a
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)\u000d\u000a
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)\u000d\u000a
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc)\u000d\u000a
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc)\u000d\u000a
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)\u000d\u000a
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc)\u000d\u000a
    at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

System.ServiceModel.CommunicationException: Error in deserializing body of request message for operation 'GetCategoriesWithoutColumns'. The OperationFormatter could not deserialize any information from the Message because the Message is empty (IsEmpty = true).
    at System.ServiceModel.Dispatcher.PrimitiveOperationFormatter.DeserializeRequest(Message message, Object[] parameters)\u000d\u000a
    at System.ServiceModel.Dispatcher.DemultiplexingDispatchMessageFormatter.DeserializeRequest(Message message, Object[] parameters)\u000d\u000a
    at System.ServiceModel.Dispatcher.UriTemplateDispatchFormatter.DeserializeRequest(Message message, Object[] parameters)\u000d\u000a
    at System.ServiceModel.Dispatcher.CompositeDispatchFormatter.DeserializeRequest(Message message, Object[] parameters)\u000d\u000a
    at System.ServiceModel.Dispatcher.DispatchOperationRuntime.DeserializeInputs(MessageRpc& rpc)\u000d\u000a
    at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)\u000d\u000a
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)\u000d\u000a
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc& rpc)\u000d\u000a
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)\u000d\u000a
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)\u000d\u000a
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc& rpc)\u000d\u000a
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc)\u000d\u000a
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)\u000d\u000a
    at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc& rpc)\u000d\u000a
    at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
4

5 に答える 5

4

これは、IE10(少なくともWindows 7プレビューリリース)を使用したjQueryのバグのようです。POSTデータはリクエストで送信されません。バグの詳細をjQueryに記録しました:http://bugs.jquery.com/ticket/12790#comment :18

更新:私の場合、IE10で問題を引き起こしたのはFreeDownloadManagerのバグでした。彼らは問題を修正し(3.9.2ビルド1281。-2012年12月26日)、うまく機能するようになりました。上記のjQueryリンクのコメントを読むと、誰かがそれを拾い上げ、FDMをアンインストールしても問題が修正されたことがわかります。したがって、これはIE10やjQueryの問題ではなく、通常の動作を変更するアドオンです。

于 2012-11-16T08:55:44.843 に答える
2

私の場合、ダウンロードアクセラレータプラスが原因でした。DAPをアンインストールすると、問題が解決しました。

于 2013-05-08T09:51:24.663 に答える
1

私はこの質問がずっと前に尋ねられたことを知っていますが、私の答えを追加したいと思いました。

これはIEやjqueryのバグではありません。DAP、FDM、IDMなどの一部のダウンロードマネージャーがこの問題の原因です(無効になっている場合でも)。これらのダウンロードマネージャーを削除すると機能します。

問題は、これらのダウンロードマネージャーが一部のURLMonインターフェイスのサンクを不完全にしていることです。これにより、POSTのアップロードが妨げられます。

GoogleGearsもこの問題の原因であると報告している人はほとんどいません。無効にすると、問題は解決します(テストされていません)

于 2013-12-13T10:19:44.183 に答える
0

ajaxリクエストでPOSTごとにデータを送信することは、IE10では機能しません(私の場合、IE10に干渉する可能性のある追加のプログラムがインストールされていない場合でも)。代わりに、ajaxリクエストでGETごとにデータを送信することは私にとってはうまくいきます。

最初はJavaScriptエラーコンソールによると、これは応答でjsonデータを返送するときに、それぞれjqueryの問題とJSONデータの問題(間違ったエンコーディング、不正な文字、無効なjsonなど)のように見えましたが、 jsonデータ。次に、POSTデータが送信されないことを認識し、jquery$.ajax呼び出しの「type」パラメーターを「GET」に変更しました。これで問題が修正されました。

于 2014-08-07T10:38:09.280 に答える
0

IE10 /jQuery1.11.1のFormDataオブジェクトのAjaxPOSTリクエストで同じ問題が発生しました。POSTデータも添付ファイルもサーバーに送信されませんでした。URLパラメータのみが送信されました。

私はこのパッチを使用して、jQueryAjaxに進行状況コールバックを追加していました。

https://github.com/englercj/jquery-ajax-progress

パッチがないと、リクエストはIE10で完全に機能します。

このパッチは、他のすべてのブラウザで完全に機能します。

于 2014-08-14T11:16:38.027 に答える