データ操作用の html5/jquery アプリケーションを開発しています。このアプリケーションには、http get 操作と http post 操作の両方が含まれています。ie バージョン < 10、ff、および chrome では、保存/削除/更新操作は問題なく動作します (ポストは検証のためにオブジェクトの情報を xml としてサーバーに送信します)。 ajax post 操作では、データ パラメータが許可されません。ajax データを送信しません。
同様の投稿が使用を提案しています
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" >
および他のバリエーションがありますが、これは機能しません。
問題は、次を追加するとすぐに発生するようです。
data: {
'lngClassID': 0,
'strAttributes': xmlAsAString,
'strExtendedPar': ""
},
データに1つのパラメータがあっても通過しません。いくつかのフォーラムは、これが IE10 の既知の問題であることを示唆していますが、これが事実であるとは信じがたいと思います... これは、IE10 を使用している人は、インターネット上のどのページでも投稿要求を行うことができないということですか? 非常にありそうもない...
開発者メニューの「ネットワーク」タブのデータを比較すると、リクエスト ヘッダーが 100% 同一であり、他のすべての情報が同一であることがわかります
すなわち 10 および 9 ブラウザから:
この問題はjqueryチームによって提起され、「CantFix」タグでクローズされたことも読みました...
誰にも解決策はありますか?アイデア?これは本当に私たちを困惑させました...
編集: ajax リクエストは次のとおりです。
DeleteBusinessObject: function (strAttributes, strExtendedPar, fncCallback) {
var webServiceUrl = ServiceAccess.GetRootURL() + "/DeleteBusinessObject";
var promise = $.ajax({
type: "POST",
url: webServiceUrl,
dataType: "xml",
context: this,
data: {
'strAttributes': strAttributes,
'strExtendedPar': strExtendedPar
},
error: this.ManageServerException
});
promise.done(fncCallback);
},
ここで、strAttributes は、'<' および '/>' タグを ASCII に変換したすべての xml データを含む非常に長い文字列です。POST リクエストには最大長が関連付けられていないはずなので、それが問題だとは思いません。奇妙な部分は、GET を使用したすべてのリクエストが問題なく機能することです。そのため、データ パラメータを使用した POST リクエストで IE 10 の問題が実際に発生すると思いますか?
EDIT2:
ブラウザが互換モードで実行されていないことを確認しました
編集 3: この問題の解決策を見つけました。結局のところ、Web サービス プロトコル HttpPost は、web.config ファイルのプロトコルのリストにありませんでした。単純に行を追加する
<add name="HttpPost" />
WebServices > Protocols 内で行う必要があるのはすべてでした。ie9、ff、chromeでは機能するが、safariとie10では機能しない理由はまだわかりません