从Javascript调用ASP.NET web服务时出错

从Javascript调用ASP.NET web服务时出错,asp.net,javascript,web-services,Asp.net,Javascript,Web Services,我试图从Javascript调用ASP.NET web服务,但它无法识别web方法,即使我完全限定了名称,我也试图找出错误所在 以下是我的web.config文件的一部分: <httpHandlers> <remove verb="*" path="*.asmx"/> <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.Script

我试图从Javascript调用ASP.NET web服务,但它无法识别web方法,即使我完全限定了名称,我也试图找出错误所在

以下是我的web.config文件的一部分:

<httpHandlers>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
</httpHandlers>
下面是javascript(QCApp4是我项目的名称空间):

scoregrid在js端使用array()命令声明为锯齿状2d数组。这是我唯一担心的web服务参数

以下是服务参考:

<asp:ScriptManager id="scriptmng" runat="server">
<Services>
<asp:ServiceReference Path="~/SavingService.asmx" />
</Services>
</asp:ScriptManager>

无论是直接调用web方法,还是像SavingService.SaveToDB那样调用它,或者使用完整的限定符,我都会遇到错误。我得到的错误是SaveToDB未定义。未定义SavingService,未定义QCApp4,具体取决于输入的限定名称的第一部分

我错过什么了吗?有什么是我设置错误的吗

事实证明,我已经将我的WebMethod设置为静态,当然,现在我在错误控制台中遇到了一个错误:


错误:[异常…”“Sys.Net.webservicecfailedexception:Sys.Net.webservicecfailedexception:服务器方法“SaveToDB”失败,出现以下错误:System.NullReferenceException--对象引用未设置为对象的实例。“调用方法时:[nsidEventListener::handleEvent]”nsresult:“0x8057001c(NS\u ERROR\u XPC\u JS\u抛出了\u JS\u OBJECT)“位置:”“数据:否”

如果在
ServiceReference
元素上设置
InlineScript
属性,它将写出与HTML内联的JavaScript方法,以便您可以准确地看到需要调用的内容,或者如果您调用了错误的内容:

<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Services>
        <asp:ServiceReference Path="~/SavingService.asmx" InlineScript="true" />
    </Services>
</asp:ScriptManager>

如果在
ServiceReference
元素上设置
InlineScript
属性,它将写出与HTML内联的JavaScript方法,这样您就可以准确地看到需要调用的内容,或者如果调用了错误的内容:

<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Services>
        <asp:ServiceReference Path="~/SavingService.asmx" InlineScript="true" />
    </Services>
</asp:ScriptManager>

我把这两件事搞砸了。我回去发现了我以前在设置这些web服务时看过的视频


我意识到,我不小心使web方法成为静态的,也忘记了添加回调方法参数。一旦我添加了on complete和on error处理程序,它就工作得很好,在错误控制台中没有错误。

我把这两件事搞砸了。我回去发现我以前看的关于设置这些web服务的视频p


我意识到,我不小心使web方法成为静态的,而且还忘记添加回调方法参数。一旦我添加了on complete和on error处理程序,它就工作得很好,在错误控制台中没有错误。

您能提供实际调用的情况吗,例如URL,以及错误?是500还是404错误?它不是er浏览器中可见的ror。我只使用Firefox的错误控制台发现了这一点。但结果没有调用web方法。错误控制台中的错误表示:错误:QCApp4未定义源文件:行:153您所说的实际调用是什么意思?我在同一个项目中调用web方法,从.Acco调用网页根据我读到的内容,我可以像调用Javascript函数一样进行调用。我的假设不正确吗?你能提供实际调用,例如URL,以及错误吗?是500还是404错误?这不是浏览器中可见的错误。我只是使用Firefox的错误控制台发现的。但不是结果没有调用web方法。错误控制台中的错误显示:错误:QCApp4未定义源文件:行:153您所说的实际调用是什么意思?我在与web页面调用来自的项目相同的项目中调用web方法。根据我读到的内容,我可以像调用Javascript函数一样进行调用。是吗这个假设不正确吗?
<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Services>
        <asp:ServiceReference Path="~/SavingService.asmx" InlineScript="true" />
    </Services>
</asp:ScriptManager>