簡體   English   中英

如何使用jquery將json數據發送到asmx(來自aspx)?

[英]how to send json data to asmx (from aspx) using jquery?

我在aspx 3.5中構建了聯系表單,我使用jQuery將其發送到Web服務(asmx)。

Web服務需要返回成功或錯誤代碼。 問題是在web方法中我只得到單個值而不是數組。 我是ajax的新手,我嘗試了很多解決方案,但沒有任何結果。 如果你只能解釋我做什么的原則也很好。

這是客戶端:

$(document).ready(function() 
{
    $("#submit").click(function(event)
    {
        $.ajax
        ({
            type: "POST",
            url: "RVContactFormMailer.asmx/HelloToYou",                
            data: "{'name': '" + $('#name').val() + "', 'company':'" + $('#company').val() + "', 'phone':'" + $('#phone').val() + "', 'email':'" + $('#email').val() + "', 'questions':'" + $('#questions').val() + "'}" ,                 
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
            AjaxSucceeded(msg);
         }, error: AjaxFailed
        });
   });

在firebug中它正確發送:

{'name': 'jhon', 'company':'example', 'phone':'123', 'email':'jhon@jhon.com', 'questions':'hello'}

asmx代碼是(請忽略名稱,其示例:

  [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ScriptService] // To allow this Web Service to be called from script, using ASP.NET AJAX or JQuery.
    [ToolboxItem(false)]
    public class RVContactFormMailer : System.Web.Services.WebService
    {
        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Json)]  
        public string HelloToYou(string name)
        {
            return "Hello " + name;
        }
    }

當我調試時,我看到輸入參數“name”只包含一個字符串 - 我不知道如何獲取我發送給服務的完整json字符串並包含所有表單數據 - 我想將它轉換為字符串數組或類似的東西,並處理它。 我怎樣才能做到這一點?

問題不在客戶端 - 它在服務器端 - 問題是我向Web服務發送了少量參數,但函數只有一個:

    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public string HelloToYou(string name)

而正確的應該是:

    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
    public string HelloToYou(string name, string company, string phone, string email, string questions)

無論如何, 謝謝你的幫助!

你試過看request.form集合嗎? 由於您正在發布請求並將params作為數據傳遞給請求,因此它將在Request.Form中可用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM