1

非常に奇妙な問題。

ポップアップ編集 (JQueryUI および部分ビューを使用) を使用する MVC4 Web アプリケーションがあり、アプリケーションがデバッグ モードでビルドされている場合、またはリリース モードでビルドされて IIS Express で実行されている場合に問題なく動作します。

HttpPost アクションは、エラーを含む HTML パーシャルビュー (UI ダイアログ ボックスを再設定する) または JSON 応答のいずれかを返します。 return Json(new { success = true });

DEBUG ビルドを IIS にデプロイすると、正常に動作します。

ただし、RELEASE ビルドを IIS にデプロイすると、動作が停止し、クライアント ブラウザー (すべて) が json 応答をファイルのダウンロードとして扱い始めます...?!

私はリクエストをいじりましたが、それらは異なります..... 機能するものはヘッダーを送信します:

Accept: */*
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest

...そして失敗したもの...

Accept: text/html, application/xhtml+xml, */*
Content-Type: application/x-www-form-urlencoded

...そして X-Requested-With ヘッダーはありません。

TBH 単純にビルド構成に基づいて REQUEST ヘッダーが異なる理由がわかりません....?! ヘルプ?

4

1 に答える 1

0

答えはわかりました……完璧な嵐について話してください……

JQuery 1.9.1 を使用していました。どうやら最近のバージョンの JQueryでは「バンドル」が壊れているようです.....

デバッグ モードでは、IIS Express バンドルのリリース モードでも、何も実行されませんでした。しかし、IIS にリリースモードを公開したところ、突然動き出し、すぐに JavaScript が壊れてしまいました。

....私のJQuery.onハンドラーがフォーム送信ボタンをオーバーライドするのを妨げていました.....

....フォームが AJAX ではなく HTML 経由で送信される原因となっていました......

....ブラウザによって JSON 応答が「ファイルとしてダウンロード」される原因となったのは......

....すべての手がかりがそこにあったので、そもそも質問をするのは少しばかげていると感じます.....

もちろん、解決策は、バンドルを壊さないように jquery*.min.js ファイルを修正することです (添付の質問/回答で説明されています)。うーん。

于 2013-05-03T15:23:48.947 に答える