当前位置: 首页 > 面试题库 >

使用asp.net的jQuery ajax无法正常工作

孙俊彦
2023-03-14
问题内容

我将拔出所有剩余的头发,因此,如果您知道可能是什么问题,请帮助我。谢谢。我所有的谷歌搜索和搜索都没有得到回报。

首先,我正在使用jquery-1.7.2.min.js和ASP.net 2.0 Web表单。

我正在尝试使用jquery进行ajax调用,但始终收到语法错误/解析错误消息。我尝试了许多不同的方法,但是当我将dataType设置为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";
}

我也尝试过设置Web服务,但得到的结果相同。似乎返回的响应是该页面的完整html或来自Web服务的xml,并且由于我将dataType设置为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>

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



 类似资料:
  • 问题内容: 我想在“ div”中显示txt文件的内容,所以我用按钮调用函数,但是即使我不按按钮,函数也会触发,这是我的HTML代码: 和我的js代码: 问题答案: 的第二个参数应该是一个函数。您没有传递函数,而是立即调用该函数并传递结果。改成:

  • 我下面的教程视频链接在这里:http://www.youtube.com/watch?v=wAwQ-noyB98 我安装了Matplotlib,包括其他必要的库:Numpy、dateutil、pytz、pyparsing和六个。 现在,我正在尝试以下命令: 导入matplotlib.pyplot plt。图([1,2,3,4,5,6,7],[5,6,7,8,9,10,11]) 我期待着某种图形出现

  • 来自Mongo Shell 工作并将记录打印到屏幕上。 从快递 我每次都得到空响应。我尝试过不使用ObjectId包装,但我仍然得到空值。mongoDB连接很好,因为我有一个成功返回所有消息。 我做错了什么?

  • 问题内容: 因此,我的设置无法按我想要的方式工作。因此,每当我运行该程序时,它就会立即从0变为100。我尝试使用,任务,并尝试了,但没有任何尝试。 这是我的程序: @MadProgrammer这是我尝试做一名摆动工作人员并将每个名称写入文档并更新进度栏的尝试。该程序将达到86%左右并停止运行,永远不会创建完成的文档。该程序将创建一个空白文档。这是我首先创建的SwingWorker对象,这是两种方法

  • 问题内容: 我在JLayeredpane上有两个JPanels。其中一个显示pdf,重叠的一个具有透明背景(我使用过setOpaque(false))。现在,我可以将图形添加到透明面板中,这样看来我实际上是在注释pdf。我想要一个橡皮擦工具来删除这些注释。我尝试使用以下代码 其中path是由多条线构成的形状。现在,不是在先前的图形上绘制 透明线 ,而是绘制 黑线 。我要去哪里错了? 问题答案: 请

  • 问题内容: 这看起来有效,但无法正常工作。我希望菜单悬停时’huh’div不透明。我尝试了淡入/淡出效果,但效果很好,但只有一次很奇怪。 问题答案: 不带点使用: