前言:我知道有很多类似的问题,但没有人帮助过我。
我有点受约束。
我有一个ASP.NET应用程序,它使用$.ajax
调用将一些数据返回到页面。我有3个不同的应用服务器,所有这些都是Windows Server 2003.
我不在本地运行,它在3个Web应用程序服务器上。 2工作,1不工作。
此调用在Dev服务器DevTest服务器上完美运行,但在生产服务器上失败。我在Chrome中检查了控制台,发现在我的Dev和DevTest环境中,ajax调用正在返回application/json
,但生产正在返回text/html
。此外,在我的Dev和DevTest服务器上,一切正常,我得到了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类型不存在所以我不得不创建它们,但它仍然无法正常工作。我用Google搜索到了这一点,我无法弄清楚问题是什么。
如果您需要任何其他信息,我很乐意提供。
请帮助。
提前致谢。
答案 0 :(得分:1)
生产响应的大小奇怪地相同,并且远远大于开发响应(173KB对366B)。您应该调查该text/html
响应的内容 - 内容实际上可能是以HTML格式化的错误消息。如果Chrome无法让您查看回复,请使用Fiddler。
答案 1 :(得分:1)
原来在生产web.config上缺少条目:
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, 
 System.Web.Extensions, Version=3.5.0.0, Culture=neutral, 
 PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, 
 System.Web.Extensions, Version=3.5.0.0, Culture=neutral, 
 PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, 
 System.Web.Extensions, Version=3.5.0.0, Culture=neutral, 
 PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, 
 System.Web.Extensions, Version=3.5.0.0, Culture=neutral, 
 PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, 
 System.Web.Extensions, Version=3.5.0.0, Culture=neutral, 
 PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, 
 System.Web.Extensions, Version=3.5.0.0, Culture=neutral, 
 PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, 
 System.Web.Extensions, Version=3.5.0.0, Culture=neutral, 
 PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, 
 System.Web.Extensions, Version=3.5.0.0, Culture=neutral, 
 PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
</sectionGroup>
</sectionGroup>
</sectionGroup>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
感谢大家的时间和答案。