在旋转大约一千次然后参考解析器语法错误后,我得到了以下工作:意外的令牌<-在ASP.NET MVC 4中使用jQuery Ajax加载部分视图
我的项目中有以下代码ASP.Net 2.0
。它可以正常工作-但要使其正常工作,我正在使用dataType: "html"
。当我使用JSON作为数据类型时,出现解析错误:Unexpected token <
我们如何使其与之配合工作JSON
?
注意:尽管我使用的是IE8,但我的某些用户仍在使用IE6。因此,我需要一个可以在IE6中使用的解决方案。
jQuery Ajax
$.ajax({
type: "GET",
url: "admPlantParametersViewEdit.aspx/GetResult",
contentType: "application/json; charset=utf-8",
dataType: "html",
success: function(msg)
{
alert("Hi");
},
error: errorFunction
});
VB.Net
<WebMethod()> _
Public Shared Function GetResult() As String
Return "hello"
End Function
请求和响应头
参考
我在参考以下两篇文章后弄清楚了
encosia-ASP.NET Web服务错误:手动JSON序列化
encosia-ASMX ScriptService错误:安装和配置
由于您使用的是.NET 2.0,最可能的罪魁祸首是您已经安装了AJAX扩展,但尚未更新web.config以便将该新处理程序用于ASMX请求。
解决步骤:
下载ASP.NET AJAX 1.0并进行安装(如果尚未安装的话)http://www.microsoft.com/zh-cn/download/details.aspx?id=883
删除现有的httpHandler之后,添加适当的httpHandler,如下所示[此配置仅适用于.Net 2.0。请参阅上面提到的博客以获取其他版本]
<httpHandlers>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false"
type="System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions, Version=1.0.61025.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpHandlers>
作为
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
和
<assemblies>
<add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
.4。作为POST
和json
$.ajax({
type: "POST",
url: "admPlantParametersViewEdit.aspx/GetResult",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg)
{
alert(msg.d);
alert(msg);
},
error: errorFunction
});
如果不引用encosia的以下几行,答案将是不完整的。
ASP.NET AJAX Extensions v1.0最初添加的两个关键功能使ASMX服务能够返回原始JSON。
- JavaScriptSerializer
- ScriptHandlerFactory
好读物
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句