这应该很容易,但由于某种原因它花了我大约2个小时和无数次搜索,没有任何工作
我试图从ajax调用WebMethod,它运行得很好。 一旦我尝试将c#函数更改为接受参数并从ajax发送一个参数失败
代码: C#:
[WebMethod]
public static string GetBGsForSelectedCrop(string cropName)
{
return "asdasd";
}
jquery的:
$().ready(function () {
$("#Result").click(function () {
$.ajax({
type: "POST",
url: "Default.aspx/GetBGsForSelectedCrop",
data: "Wheat",
success: function (msg) {
$("#Result").text(msg.d);
alert(msg.d);
console.log(msg)
}
});
});
});
我尝试了datatype: "json", contentType: "application/json; charset=utf-8"
,并尝试了datatype: "string"
和datatype: "text"
,GET
,data: "{'ABCD'}
,data:{"cropName: Wheat"}
和{{ 1}}。
我未定义data: json.Stringify("Wheat")
,有时HTTP错误500,如果我把它放得太远。
我错过了什么?这只是一项简单的任务,应该在几秒钟内完成..
答案 0 :(得分:1)
正如评论中的人所说,你需要改变你的代码:
$("#Result").click(function () {
$.ajax({
type: "POST",
url: "Default.aspx/GetBGsForSelectedCrop",
data: JSON.stringify({ cropName: "Wheat" }),
dataType:'text',
contentType: "application/json; charset=utf-8",
success: function (msg) {
$("#Result").text(msg.d);
alert(msg.d);
console.log(msg)
}
});
});
您的错误是数据编码不好,而您缺少数据类型。
What is the stringfy它将任何值转换为JSON。