我是Jquery Ajax的新手。我需要你的帮助。我想在span元素旁边显示一个文本。我已经完成了一些主题的参考,但我无法解决它
这是我在firebug中的错误(添加了换行符和缩进)
{"Message":"Invalid web service call, missing value for parameter: \u0027haha\u0027.", "StackTrace":" at System.Web.Script.Services.WebServiceMethodData.CallMethod(Object target, IDictionary`2 parameters) at System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawParams(Object target, IDictionary`2 parameters) at System.Web.Script.Services.RestHandler.InvokeMethod(HttpContext context, WebServiceMethodData methodData, IDictionary`2 rawParams) at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)", "ExceptionType":"System.InvalidOperationException"}
在aspx中
<asp:TextBox ID="txtNoiDung" runat="server" TextMode="MultiLine" CssClass="txtNoiDung"></asp:TextBox><span id="vltxtNoiDung"></span>
在代码背后
[WebMethod()]
public static string test1cai(string haha)
{
return haha;
}
在Javascript中
$(".txtNoiDung").focusout(function () {
var dataToSend = { names: $(this).val() };
$.ajax({
type: "POST",
url: "QuanLyTin.aspx/test1cai",
data: JSON.stringify(dataToSend),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
$("#vltxtNoiDung").text(msg.d)
},
error: function (xhr, reason, ex) {
alert(reason);
}
});
});
提前致谢!
答案 0 :(得分:7)
将data: JSON.stringify(dataToSend),
更改为
data: JSON.stringify({
haha: $(".txtNoiDung").val()
}),
这假设$(".txtNoiDung")
在页面中是唯一的,如果不是,则需要另一种获取值的机制。我很确定你可以通过$(this).val())
来获得这种情况下的价值。
答案 1 :(得分:0)
方法中的参数名称应始终与Ajax调用数据中传递的参数相同。 而不是数据中的名称使用haha(来自c#方法的参数)。