2012-10-27 10 views
5

次のajax呼び出しはIE10以外のすべてのブラウザで機能します(IE9標準モードに設定しない限り) 私はそれをfiddlerで見ると、 ie10でどんな考えにも通されていますか?Jquery Ajaxコールは、ie 10以外のすべてのブラウザで動作します。

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) 
+3

おそらくフィドルを提供できますか? –

+0

どの部分が欲しいですか? – DeniroSA

+2

「無料ダウンロードマネージャ」アドオン(またはそれに似たアドオン)がインストールされていますか?この問題が発生することは知られています(IEのManage Add-onで無効にしても)。 – EricLaw

答えて

4

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

UPDATE:私の場合はそれがIE10で問題を起こし無料ダウンロードマネージャのバグでした。彼らはfixed the issue(3.9.2ビルド1281 - 2012年12月26日)ので、それは素晴らしい再生します。上記のjQueryリンクのコメントを読むと、誰かがそれを選択したことがわかり、FDMをアンインストールすると問題が修正されたことがわかります。 IE10やjQueryの問題ではなく、通常の動作を変更するアドオンです。

+0

「フリーダウンロードマネージャ」は、ブラウザのアドオンまたは別のソフトウェアですか? – JustinJason

+0

@JustinJason:FDMは別のソフトウェア(http://www.freedownloadmanager.org/)ですが、ダウンロードリクエストとリンククリックのインターセプトなど、IEと統合するためのアドオンもインストールされています。このアドオンはIE10のAJAX呼び出しを妨害していました。 – BrutalDev

2

私の場合は、Download Accelerator Plusが原因でした。 DAPをアンインストールすると問題が解決しました。

1

私はこの質問が長い時間を頼まれたことを知っていますが、私の答えを追加したい。

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

問題は、これらのダウンロードマネージャは、いくつかのURLMONインタフェースの不完全なサンクがあり、このは、POSTのアップロードを妨害することです。

Google Gearsもこの問題の原因となっているとの報告も少なくありません。

0

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

JavaScriptエラーコンソールによれば、応答でjsonデータを返信すると、これはjqueryの問題とJSONデータの問題(間違ったエンコードや不正な文字や無効なjsonなど) jsonデータでうまくいきました。その後、私はPOSTデータが送信されていないことを認識し、jquery $ .ajax呼び出しの "type"パラメータを "GET"に変更し、問題を修正しました。

0

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

私はjQueryのアヤックスに進捗コールバックを追加するには、このパッチを使用していた:要求がIE10で完璧に動作し、パッチなし

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

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