从$ .ajax只发送一个字符串到c#

时间:2013-12-06 22:42:47

标签: c# javascript jquery ajax

这应该很容易,但由于某种原因它花了我大约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"GETdata: "{'ABCD'}data:{"cropName: Wheat"}和{{ 1}}。

我未定义data: json.Stringify("Wheat"),有时HTTP错误500,如果我把它放得太远。

我错过了什么?这只是一项简单的任务,应该在几秒钟内完成..

1 个答案:

答案 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。