如何使用JQueryAjax调用从web方法发送和检索数据
本文关键字:检索 数据 方法 web 何使用 JQueryAjax 调用 | 更新日期: 2023-09-27 18:22:18
我有一个文本框,旁边有一个按钮。我想通过Jquery ajax调用将文本框的内容发送到webmethod,并返回其大写值并在alert中显示。到目前为止,我有这个代码,但它不起作用。
JAVASCRIPT:
function CallWM()
{
var name = $('#name').val();
RealCallWM(name);
}
function RealCallWM(name) {
$.ajax({
url: 'Register.aspx/UpperWM',
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: { name: JSON.stringify(name) },
success: OnSuccess(response),
error: function (response) {
alert(response.responseText);
}
})
};
HTML:
Name: <input id="name" type="text" />
<input id="Button1" type="button" value="button" onclick="CallWM();"/></div>
</form>
WEB方法:
[WebMethod]
public static string UpperWM(string name )
{
var msg=name.ToUpper();
return (msg);
}
替换:
data: '{name: ' + name + '}',
带有:
data: { name: JSON.stringify(name) },
以确保正确的编码。现在您正在发送以下有效载荷:
{name:'some value'}
这显然是一个无效的JSON有效载荷。在JSON中,所有内容都应该双引号:
{"name":"some value"}
这就是为什么您绝对不应该使用一些字符串串联手动构建JSON,而是使用内置的方法(JSON.stringify
)。
附带说明:我不确定$.ajax
方法是否理解一个名为failure
的回调。因此:
$.ajax({
url: 'Register.aspx/UpperWM',
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: { name: JSON.stringify(name) },
success: OnSuccess(response),
error: function (response) {
alert(response.responseText);
}
});
还要注意,在您的错误回调中,我删除了response.d
属性,就好像您的web方法中出现了异常一样。很可能服务器根本不会返回任何JSON。
根据您的评论,我理解您的问题尚未解决,所以请尝试此
function RealCallWM(name) {
$.ajax({
type: "POST",
url: "Default.aspx/UpperWM",
data: JSON.stringify({ name: $('#name').val() }),
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
success: function (data, status) {
console.log("CallWM");
alert(data.d);
},
failure: function (data) {
alert(data.d);
},
error: function (data) {
alert(data.d);
}
});
}