前言:我知道有很多类似的问题,但没有一个对我有帮助。
我有点纠结。
我有一个 ASP.NET 应用程序,它使用$.ajax
调用将一些数据返回到页面。我在 3 个不同的应用程序服务器上有这个,它们都是 Windows Server 2003。
我不是在本地运行它,它在 3 个 Web 应用程序服务器上。2个有效,1个无效。
此调用在开发服务器上完美运行,开发测试服务器,但在生产服务器上失败。我在 Chrome 中检查了控制台,发现在我的 Dev 和 DevTest 环境中,ajax 调用正在返回application/json
,但在生产环境中正在返回text/html
。此外,在我的开发和开发测试服务器上,一切正常,我得到了它应该返回的 json,但在生产中,我得到了 200 OK,但它返回整个调用页面 html 并执行我的 ajax 的错误函数称呼。
这是我的ajax调用:
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "RequestDetail.aspx/postAsync",
data: "{'reqSystem': '" + $('#ctl00_PlaceHolderMain_lblRequestSystem').text() + "', 'vendorNumber': '" + $('#ctl00_PlaceHolderMain_txtVendorNo').val() + "'}",
dataType: "json",
success: AjaxSucceeded,
error: AjaxFailed
});
这是后面的代码:
<System.Web.Services.WebMethod()> _
Public Shared Function postAsync(ByVal reqSystem As String, ByVal vendorNumber As String) As String
Dim required = CheckForSpecialApproval(reqSystem, vendorNumber)
Return required.ToString()
End Function
这是我在生产版 Chrome 的控制台中看到的内容:
这就是 Dev 上的样子:
我在生产服务器上检查了 IIS 中的 mime 类型,并且 javascript 和 json 的 mime 类型不存在,所以我不得不创建它们,但它仍然无法正常工作。我用谷歌搜索了这个问题,我无法弄清楚问题是什么。
如果您需要任何其他信息,我很乐意提供。
请帮忙。
提前致谢。