无法在对ASP.NET webmethod的jQuery ajax调用中传递字符串参数
我在jQuery ajax调用中向ASP.NET webmethod传递参数时遇到一些问题,它整天都在对我进行监听 我已经看到了解决方案是如何做到的,但它并不适合我 下面是一些代码:无法在对ASP.NET webmethod的jQuery ajax调用中传递字符串参数,jquery,webmethod,Jquery,Webmethod,我在jQuery ajax调用中向ASP.NET webmethod传递参数时遇到一些问题,它整天都在对我进行监听 我已经看到了解决方案是如何做到的,但它并不适合我 下面是一些代码: function GetString() { var name = "yan"; var fam = "key"; alert(name + " " + fam); $.ajax ({ type: "GET", url: "'Services/MyService.
function GetString() {
var name = "yan";
var fam = "key";
alert(name + " " + fam);
$.ajax
({
type: "GET",
url: "'Services/MyService.asmx/returnString",
dataType: "json",
//data: "{ 'fname' : '" + name + "' , 'lname' : '" + fam + "'}",
//data: "{ 'fname' : 'name' , 'lname' : 'fam'}",
//data: '{"fname":"Chris","lname":"Brandsma"}',
data: "{'fname':'Chris','lname':'Brandsma'}",
contentType: "application/json; charset=utf-8",
error: function (jqXHR, textStatus, errorThrown) //what to do if fails
{
alert('bad, ' + errorThrown + ", " + jqXHR.responseText + ", " + textStatus);
},
success: function (data) //what to do if succedded
{
alert(data.d);
}
});
}
这就是我得到的错误:
你可以看到,我已经尝试了几种方法来实现它,但都没有成功。
有人能指出错误/提出另一种解决方案吗
提前感谢您更改代码
type: "GET",
到
在代码更改中
type: "GET",
到
经过过去24小时的努力,我终于成功了:) 事情是这样的: 代码隐藏:
[WebMethod]
[ScriptMethod(UseHttpGet=false)]
public string returnString2(string fname, string lname)
{
return "{ \"FirstName\" : "\" + fname + "\" , \"LastName\" : "\" + lname + "\"}";
}
注意(UseHttpGet=false)
Jquery:
function GetString2() {
var name = "yan";
var fam = "key";
alert(name + " " + fam);
$.ajax
({
type: "POST",
url: 'Services/MyService.asmx/returnString2',
dataType: "json",
data: JSON.stringify({ fname: "yan" , lname: "key" }),
contentType: "application/json; charset=utf-8",
error: function (jqXHR, textStatus, errorThrown) //what to do if fails
{
alert('bad, ' + errorThrown + ", " + jqXHR.responseText + ", " + textStatus);
},
success: function (data) //what to do if succedded
{
alert(data.d);
var person = $.parseJSON(data.d);
alert(person.FirstName);
}
});
}
注意如何键入:“Post”
以及数据行如何更改
感谢所有试图帮助我的人,你们都贡献了一点:)经过我在过去24小时的努力,我终于成功了:) 事情是这样的: 代码隐藏:
[WebMethod]
[ScriptMethod(UseHttpGet=false)]
public string returnString2(string fname, string lname)
{
return "{ \"FirstName\" : "\" + fname + "\" , \"LastName\" : "\" + lname + "\"}";
}
注意(UseHttpGet=false)
Jquery:
function GetString2() {
var name = "yan";
var fam = "key";
alert(name + " " + fam);
$.ajax
({
type: "POST",
url: 'Services/MyService.asmx/returnString2',
dataType: "json",
data: JSON.stringify({ fname: "yan" , lname: "key" }),
contentType: "application/json; charset=utf-8",
error: function (jqXHR, textStatus, errorThrown) //what to do if fails
{
alert('bad, ' + errorThrown + ", " + jqXHR.responseText + ", " + textStatus);
},
success: function (data) //what to do if succedded
{
alert(data.d);
var person = $.parseJSON(data.d);
alert(person.FirstName);
}
});
}
注意如何键入:“Post”
以及数据行如何更改
感谢所有试图提供帮助的人,大家都贡献了一点:)是aspx页面或Web服务上的webmethod,因为aspx的webmethod不支持GET.try
data:{firstName:“Chris”,lastName:“Brandsma”}
而不是数据:“{firstName':'Chris,'lastName':'Brandsma'}”
我创建了一个Web服务,C代码就写在这个文件中。所以我猜它不是一个aspx,而是一个Web服务…@mamdouh-它仍然不工作并引发错误:alert(“bad”)
:(说真的,没有人遇到过这样的问题吗???webmethod是在aspx页面还是Web服务上,因为aspx的webmethod不支持GET。试试数据:{firstName:“Chris”,lastName:“Brandsma”}
而不是数据:“{'firstName':'Chris','lastName':'Brandsma'}”
我创建了一个Web服务,C代码写在该文件中。所以我猜它不是一个aspx,而是一个Web服务…@mamdouh-它仍然不工作并引发错误:警报(“坏”)
:(说真的,没有人遇到过这样的问题吗???我已经试过了。此外,在我的代码背后,我有[ScriptMethod(UseHttpGet=true)]
这难道不意味着我应该首先使用类型:“GET”
??无论如何,我尝试了另一个建议,但也不符合要求:数据:JSON.stringify({fname:“yan”,lname:“key”}),
当你没有参数时,“GET”起作用。当你有参数时,“POST”起作用,但“GET”不起作用。请解释一下原因。我已经尝试过了。另外,在我的代码中我有[ScriptMethod(UseHttpGet=true)]
这不意味着我应该使用键入:“GET”
首先?!?!无论如何,我尝试了另一个建议,但也不符合要求:数据:JSON.stringify({fname:“yan”,lname:“key”}),
当你没有参数时,“GET”起作用。当你有参数时,“POST”起作用,但“GET”不起作用。请解释原因。