私はAJAXを介してWebAPI2コントローラに画像付きのフォームをPOSTするページを開発しました。なぜJQuery AJAXは断続的にエラー0を返しますか?
これを繰り返し実行します。私は、ユーザーに画像の束を選択させ、選択ボックスに追加してから、ユーザーは別の場所からさらに画像を追加したり、リストから項目を削除したりすることができます。 私は彼らが記入したフォームをサーバーに送信します。私はイメージごとに1回具体的に行うので、各イメージのアップロードの進行状況を表示できます。 イメージがサーバー上に置かれると、イメージはサーバー側のコードによってセキュリティ保護されたリポジトリに移動します。アプリケーションプールは、特定のADアカウントを使用して作業を行っています。
これは素晴らしいテストですが、テストした人にはうってつけですが、IEで断続的なエラーが発生している8人のテスト担当者がいます。彼は別のブラウザで試してみません(私たちは実際のテスター、ユーザーだけでなく、これは頑固です)
同じプロジェクトの一部である私のサーバーサイドWeb APIコードは、ヒット。私はバットからすぐに方法を入力したことを記録します。さらに、サーバー側のアプリケーションログにエラーが記録されることはありません。 AJAXは「エラー」と「0」を返しています。応答テキストはありません。私はすべてのAJAXエラーをサーバのアドレスに記録しています(これは正解です)。
Web APIではなくMVCコントローラでこれを書きましたが、問題を解決することを期待して切り替えました。それはしませんでした。
フォームを「提出する」ボタンは送信ボタンではありません。これはinput = "button"です。フォームに送信ボタンがありません。フォームに投稿するアドレスがありません。フォーム全体をロックして、ボタンをクリックすることはできません。アイテムがアップロードされている間は、要素を編集することはできません。結論として、私はe.preventDefault()を見ることができません。助けになるだろう。
これは実際にはクロスサイトスクリプティングではありません。クロスサイトスクリプティングポリシーがランダムにトリップされる可能性があることを示唆するオンラインのものは見つかりませんが、まるでそうであるようです。
時々、彼はフォームを提出し、画像アップロードの1/3と残りのエラーを提出します。イメージタイプ、サイズ、またはそのいずれかではありません。アップロードしたイメージをコピーして検証に使用しました。
サーバー側でクロスサイトスクリプティングを無効にし、私の側にJSONPフォーマッタを追加し、エラーなしでテストしました。彼は実際に問題を解決したかどうかを確認するためにテストを続けようとしています。なぜなら、以前は問題なく動作していたからです。
本当に原因となっているクロスサイトスクリプティングの場合は、どうしてですか?私のAjaxリクエストで指定していないので、別のトップレベルドメインを選んでいるIISサーバ上に何かがあるでしょうか? getBaseURL()
$.ajax({
url: getBaseURL() + 'API/FileForm',
type: 'POST',
data: dataString,
cache: false,
contentType: false,
processData: false
})
言う:
function getBaseURL() {
var baseURL = $("#HiddenCurrentURL").val().trim();
if (baseURL != "/") {
baseURL += "/";
}
return baseURL;
}
HiddenCurrentURLが私_layoutにされた状態で:
@Html.Hidden("HiddenCurrentURL", Request.ApplicationPath)
任意の助けをいただければ幸いです。私は今何をすべきかは分かりません。ブラウザの設定でこれを行うことはできますか?
編集:彼は私と他のテスターと同じようにIE 11を使用しています。私は持っているので、他にもChromeとFirefoxでテストされています。
Edit2:クロスサイトスクリプティングを無効にし、問題は継続されました。面白いことに、この問題は夜遅くまたは朝早く、仕事のために時間外に起こっているように見えることに気づくでしょう。私はIISグループにチェックして、彼らは「常にオン」だと言っていましたが...
おそらくIEバージョンに関連しています。あなたはIEバージョンを提供できますか? – Hackerman
@Hackerman私が追加したことを伝えるかどうかは分かりませんが、バージョンはIE 11-すべてのテスターにとってです。 – nebulous