首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法通过jquery将数据发送到webservice

问无法通过jquery将数据发送到webservice
EN

Stack Overflow用户
提问于 2013-09-26 20:14:38
回答 2查看 318关注 0票数 0

嗨,我在通过ajax向webservice发送数据时遇到了困难。 onclient方法触发,但不转到服务

在这里,我的aspx页面代码:

代码语言:javascript
复制
        <script src="Scripts/jquery-1.7.1.js"></script>
        <script type="text/javascript">
            function Start() {
                debugger;
                $.ajax({

                    type: "POST",
                    url: "WebService.asmx/Start",
                    data: '{speakstr: "' + $("#lbl").html() + '" }',
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (msg) {
                        // alert(msg.d);
                    }
                });
                return false;
            }
        </script>
        <title></title>
    </head>

    <body>

        <form id="form1" runat="server"> 
            <div>
                <asp:Label ID="lbl" Text="text" runat="server" />
                <asp:Button ID="Btn" Text="listen" runat="server" OnClientClick="Start()" />
            </div>
        </form>

下面是我的简单webservice.asmx页面:

代码语言:javascript
复制
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService
{

    public WebService()
    {

        //Uncomment the following line if using designed components 
        //InitializeComponent(); 
    }

    [WebMethod]
    public static void Start(string text)
    {
        string txt = text;
    }
}

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-26 20:20:28

尝试如下:更改代码js代码:

代码语言:javascript
复制
   function Start() {
                $.ajax({
                    type: "POST",
                    url: "WebService.asmx/Start",
                    data: JSON.stringify({"text" : $("#lbl").html()}),
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (msg) {
                        alert(msg.d);
                    }
                });
            }

在asmx中,更改方法:

代码语言:javascript
复制
[WebMethod]
public static string Start(string text)
{
    string txt = text;
    return txt; // just for test
}  
票数 1
EN

Stack Overflow用户

发布于 2013-09-26 20:19:30

我不太确定,但是ajax调用中的参数名不也应该是"text“吗?因为这就是web方法的参数。

另外,我也不太确定,但是Webmethod不应该在后面加上括号吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19037840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档