如何使用JQuery Ajax方法将内容发送到方法

时间:2010-04-12 19:44:40

标签: jquery json web-services

$.ajax({ 
  type: "POST", 
  url: "WebService.asmx/AddVisitor",
  data: "{'fname':'dave', 'lname':'ward'}", 
  contentType: "application/json; charset=utf-8", 
  dataType: "json"
});


 我有一个Asp.Net WebMethod,它接受firstName,lastName .....作为参数,如何使用JQuery Ajax方法将该东西发送到该方法。如果我硬编码以上它没有任何问题
但如果我通过动态它失败了

var firstName = $("[id$='txtFirstName']");
var lastName = $("[id$='txtLastName']");

//data: "{'firstName':'Chris','lastName':'Brandsma'}"<br>

data: "{'firstname':'" + escape(firstName.val()) + "','lastName':'" + escape(lastName.val()) + "'}",

我的WebMethod看起来像这样

[WebService(Namespace =“http://tempuri.org/”)]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class VisitorWS:System.Web.Services.WebService {
    [的WebMethod]
    public bool AddVisitor(string firstName,string lastName)
    {
        返回true;
    }


这里有什么不对?我已经尝试过eval并且没有任何改变
谢谢你的帮助。

3 个答案:

答案 0 :(得分:0)

从我可以告诉你的代码来设置数据看起来很好。问题必须是获取名字和姓氏的值。您是否尝试在获取后显示警报中的值,以确保它们具有值?

关于可能不相关的说明,您可能对本文中关于您正在使用的选择方法感兴趣...

http://encosia.com/2009/06/09/11-keystrokes-that-made-my-jquery-selector-run-10x-faster/

希望这有帮助!

答案 1 :(得分:0)

我不再使用WebService了,但你也有[ScriptMethod]属性吗?

请务必检查FireBug以查看返回的实际错误。可能是404这是一个非常不同的问题。

答案 2 :(得分:0)

我已经想通了,而且这里没有添加脚本方法。

var myData = { 
  "firstName": escape($('#txtFirstName').val()),
  "lastName": escape($('#txtLastName').val())
};

$.ajax({
  // ...  
  data: JSON.stringify(myData),
  // ...
});