私はMVC/ajaxプロジェクトのプログラマであり、顧客から多大なトラフィックを受け取ります。私たちは、クライアントからパラメータを受け取らないコントローラアクションの1つまたは2つの独立したインスタンス(1日あたり)を見てきました。ナビゲーション中のjQuery ajax呼び出しのMVCアクションのヌルパラメータ
短いストーリー:アクションがjQuery ajax経由で呼び出されており、アクションパラメータは、ブラウザが別のページにナビゲートしている間にajax呼び出しが行われた場合のみnullになります。 IEはリンクをクリックしてから、ajax呼び出しをトリガーします。
私は実際にajaxデータにnullを渡していないことを確認するために、これらの呼び出しの回りにいくつかの粗い検証を追加しましたが、これは問題を緩和しません。そのうちの1つの例を以下に示します。
var searchValue = _txtSearch.val().trim();
if (searchValue === null
|| searchValue === undefined
|| searchValue.length < _minimumLengthForSearch) {
_txtSearch.focus();
return;
}
// clear out the value when launching
_txtSearch.val('');
$.post(_quickSearchUrl,
{ searchString: searchValue },
function (data) {...},
"json");
私はIEが他のブラウザとは異なるこのような状況に対処可能性が示唆
an old IEBlog postを見つけました。他の誰かがこの現象に遭遇したかどうかについて私は興味がありました。繰り返しますが、私はこの問題をIEでのみ、ページの移動中にしか再現できません。
編集:それは何らかの理由でアクティブフィドラーでこの例外を再現することは困難であるが、私はバイオリンを管理するときには、次のエラーメッセージが表示されます。
フィドラーは、セッション#4におけるプロトコル違反を検出しました。 Content-Length Mismatch:要求ヘッダーは24バイトを示しましたが、クライアントは0バイトを送信しました。フィドラーを使用
こんにちは@あなたはこの問題を解決したことがありますか?私はまったく同じ問題を経験しているので、あなたが持っているすべてのポインタに感謝します。乾杯。 –
OnAuthorizationをオーバーロードし、手動でこれが発生したケースを検出しました。リクエストがajaxリクエストであるかどうか、コンテンツがコンテンツの長さと一致するかどうかを確認しました。これは理想的ではありませんが、機能します。 – Will