1

很奇怪的问题。

我有一个 MVC4 Web 应用程序,它使用弹出式编辑(通过 JQueryUI 和部分视图),当应用程序以调试模式构建时,或者它以发布模式构建并在 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 处理程序覆盖表单提交按钮.....

....这导致表单通过 HTML 而不是 AJAX 提交......

....这导致 JSON 响应被浏览器“下载为文件”......

....这让我觉得一开始就问这个问题有点愚蠢,因为所有的线索都在那里......

当然,解决方案是修复 jquery*.min.js 文件,以便它们不会破坏捆绑(如附加的问题/答案中所述)。哼哼。

于 2013-05-03T15:23:48.947 回答