这是我的AJAX代码
$.ajax({
type: 'POST',
url: 'country_management.aspx/save',
cache: false,
data: "{'parameter':'paramValue'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
alert(data.d);
if (data.d == "error") {
$('.success_box').hide();
$('.error_box').show();
}
else {
$('#name').val('');
$('.error_box').hide();
$('.success_box').show();
}
}
});
代码背后:
[WebMethod]
[ScriptMethod]
public static string save(string parameter)
{
string name = HttpContext.Current.Request.QueryString["name"].Trim();
return "error";
}
写完第一行后,return语句不会向AJAX返回任何内容。
答案 0 :(得分:0)
因为您没有发布任何字段或属性“名称” 如果在单击表单内的按钮后执行ajax,则数据将是序列化的表单。
另一件事是,为什么你应该在查询字符串中看到“name”var,我没有看到任何带有aspx的url?name =“any name”
答案 1 :(得分:0)
不知道整个应用程序的上下文有点难以回答你的问题。 (名称是否从应用程序的其他地方提供,您可以使用会话?)
但是什么阻止你在ajax调用中传递名字?而不是仅通过'参数'发送:'paramValue'。
你必须记住你的查询字符串应该包含你正在寻找的参数。目前它看起来像是。
http://www.somesite.com/country_management.aspx/save?parameter=paramValue
当你真正需要时
<强> e.g。强>
http://www.somesite.com/country_management.aspx/save?parameter=paramValue&name=newName
<强>的Javascript 强>
$.ajax({
type: 'POST',
url: 'country_management.aspx/save',
data: { parameter:'paramValue', name: 'newName'},
success: function (data) {
//do something with the response
}
});
<强>代码隐藏强>
[WebMethod]
[ScriptMethod]
public static string save(string parameter, string name)
{
PerformSave(name, parameter);
return "Data Saved!";
}
提示强>
试试这款应用。 Fiddler。当你处理诸如ajax调用等事情时,它非常有用。实际上任何web开发。 :)