gpt4 book ai didi

c# - jquery ajax 与 asp.net 不工作

转载 作者:太空狗 更新时间:2023-10-29 21:09:46 25 4
gpt4 key购买 nike

我即将拔掉所有剩余的头发,所以如果您知道可能是什么问题,请帮助我...谢谢。我所有的谷歌搜索也没有得到返回。

首先,我使用 jquery-1.7.2.min.js 和 ASP.net 2.0 网络表单。

我正在尝试使用 jquery 进行 ajax 调用,但不断收到语法错误/解析错误消息。我尝试了很多不同的方法,但是当我将数据类型设置为 json 时,它们都会导致错误。

这是我所拥有的:

$.ajax({
type: "POST",
url: "UserList.aspx/GetTestJson",
data: {}, //have also tried "{}" and other options such as removing the line
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function(data, textStatus, jqXHR){
alert('success');
},
//Using below instead of above makes no difference either
//success: function(data){
// alert('success');
//},
error: function(jqXHR, textStatus, errorThrown){
alert('errorThrown: ' + errorThrown);
}
});

和aspx页面方法:

[WebMethod]
public static string GetTestJson()
{
return "Hello My World";
}

我也试过设置网络服务,但得到的结果相同。返回的响应似乎是页面的完整 html 或来自 Web 服务的 xml,并且因为我将数据类型设置为 json,所以无法成功解析它。如果是这种情况,如何将响应设置为仅返回 json?

这是我尝试过但没有成功的其他方法:

[WebMethod]
public static string GetTestJson()
{
HttpContext.Current.Response.ContentType = "application/json";
string json = JavaScriptConvert.SerializeObject("Hello My World");
return json;
}

我通过 jQuery 得到的错误信息:

errorThrown.message = "Syntax error"
errorThrown.number = -2146827286
errorThrown.name = "SyntaxError"
textStatus = "parseerror"
jqXHR.status = 200
jqXHR.statusText = "OK"
jqXHR.readyState = 4
jqXHR.responseText = (the complete html of the page)

有什么想法或建议吗?

谢谢

最佳答案

感谢@DaveWard 和@CodeRoller 的帮助导致了这个解决方案:

  1. 安装 ASP.NET Ajax 扩展(HERE)
  2. 添加对 System.Web.Extensions.dll 的引用
  3. 修改 web.config 以包含 ScriptModule httpModule(见下文)

我的 jQuery ajax 调用和 WebMethod 仍然与我原来的帖子相同。

我的web.config修改如下:

  <system.web>
<compilation debug="true">
<assemblies>
<!-- A bunch of other assemblies here-->
<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>
</compilation>
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
</system.web>

我希望其他人会觉得这很有用。

关于c# - jquery ajax 与 asp.net 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11750339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com