[英]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.