使用Javascript - 调用WebService的ASP.NET - 服务器实现方法“methodName'失败 [英] Javascript - calling ASP.NET WebService - The server method 'methodName' failed

查看:87
本文介绍了使用Javascript - 调用WebService的ASP.NET - 服务器实现方法“methodName'失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在试图解决这个问题了一会儿,都没有成功呢。
我有哪些我想从JavaScript作为这种所谓的基本ASP.NET的WebService。

I've been trying to resolve this issue for a while and haven't been successful yet. I've got a basic ASP.NET WebService which I'm trying to call from javascript as such.

using System;
using System.Web;
using System.Web.Services.Protocols;
using System.Web.Services;
using System.Web.Script.Services;

namespace RandomWebServices
{
/// <summary>
/// Summary description for WebServices1
/// </summary>
[WebService(Namespace = "http://localhost:2900/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService]
public class WebServices1 : WebService
{
    [WebMethod]
    public string PieTable(string table)
    {
        return table + " - resultant text";
    }
}
}

简单......是的?
那为什么,当我尝试从JavaScript我得到以下调用它:

Simple... Yes? Then why is it that when I try calling it from javascript I get the following:

错误:服务器方法'PieTable'失败了。

"Error: The server method 'PieTable' failed."

我所说的WebService的如下:

I call the WebService as follows:

<script type="text/javascript">
function CallService() {
    RandomWebServices.WebServices1.set_defaultSucceededCallback(Callback);
    RandomWebServices.WebServices1.set_defaultFailedCallback(OnError);

    RandomWebServices.WebServices1.PieTable("Pie");

    return false;
}

function Callback(result) {
    alert("asd");

    var outDiv = document.getElementById("outputDiv");

    if (outDiv == null) {
        alert("outputDiv not found");

        return false;
    }
    else {
        alert("outputDiv found");

        outDiv.innerText = result;
    }

    return false;
}

function OnError(result) {
    alert("Error: " + result.get_message());
}
</script>

我从下面的对象调用JavaScript:

I am calling the javascript from the following object:

<input value="Load" onclick="CallService(); return false;" type="button" />

我使用AJAX的ToolkitScriptManager对象引用WebService的:

I use AJAX's ToolkitScriptManager object to reference the WebService:

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
<Services>
    <asp:ServiceReference Path="http://localhost:2900/WebServices1.asmx" />
</Services>
</asp:ToolkitScriptManager>

请协助。
提前致谢。
马尔科

Please assist. Thanks in advance. Marco

推荐答案

尝试在PieTable方法应用[ScriptMethod]属性,调用使用jQuery webMethods的时候,这通常可以解决我的问题。

Try applying [ScriptMethod] attribute on the PieTable method, this usually solves my problems when calling webmethods with JQuery.

http://msdn.microsoft.com/en-us/library/system.web.script.services.scriptmethodattribute.aspx

[WebMethod]
[ScriptMethod]
public string PieTable(string table)
{   
    return table + " - resultant text"; 
} 

这篇关于使用Javascript - 调用WebService的ASP.NET - 服务器实现方法“methodName'失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆