服务器不从ajax调用接收数据

时间:2014-04-06 20:33:10

标签: javascript ajax

我有问题。我试图用ajax电话发送textarea的内容,但它似乎没有工作,我不知道为什么。

需要接收内容的方法称为GetStatus(string statusText)

这里是javascript代码:

$("#btnSaveStatus").on("click", function () {
                    var statusText = $(".textareaEdit").val();

                    $.ajax({
                        type: "GET",
                        url: "Default.aspx/GetStatus",
                        data: "{statusText:'" + statusText + "'}",
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function (result) {
//                            $('#littlbioID').text(result.d);
                        }
                    });
                });

请指教。您还应该知道我是Web开发的新手。

2 个答案:

答案 0 :(得分:2)

  1. 您不能在GET请求中拥有请求正文,您必须为该
  2. 使用POST请求
  3. 您构建的字符串无效JSON,因为:
    • 属性名称必须为字符串
    • 您不知道用户将在textarea中输入什么内容 - 它可能包含JSON中具有特殊含义的字符
  4. 以编程方式生成JSON。

    {
      type: "POST",
      url: "Default.aspx/GetStatus",
      data: JSON.stringify({
        statusText: statusText
      }),
      // etc
    

    显然,需要将进程的服务器端设置为接受带有JSON主体的POST请求(而不是更标准的URL表单编码格式)。

答案 1 :(得分:1)

试试这个:

$("#btnSaveStatus").on("click", function () {
                    var statusText = $(".textareaEdit").val();
                    var jsonText = new Object();
                    jsonText.statusText = statusText;

                    $.ajax({
                        type: "POST",
                        url: "Default.aspx/GetStatus",
                        data: JSON.stringify(jsonText);,
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function (result) {
//                            $('#littlbioID').text(result.d);
                        }
                    });
                });