0

首先,对不起我的英语不好......我已经创建了一个测试 jquery ajax 的示例页面。但我不能。我在页面上创建了一个 db 和 2 txtbox 以及一个 html 按钮。我希望在按下按钮时将文本框值保存到 db。这是我的脚本:

$(function () {
    $('#Button1').click(function () {
        var udata = new Object();
        udata.name = $('#Text1').val();
        udata.fam = $('#Text2').val();
        $.ajax({
            type: "POST",
            url: "default.aspx/InsertData",
            data: udata,
            contentType: "application/json;charset=utf-8",
            dataType: "json",
            success: function () { alert("ok"); },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert("Request: " + XMLHttpRequest.toString() + "\n\nStatus: " + textStatus + "\n\nError: " + errorThrown);
            }
        });
        return false;
    });
});

我背后的代码是:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics;
using System.Web.Services;
namespace ajax_example
{
    public partial class _default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        [WebMethod]
        protected static void InsertData(string name,string fam)
        {
            //some code
        }
    }

} 当我按下按钮时,我总是收到错误消息。请帮帮我。这有什么问题?!

4

2 回答 2

1

你可以试试:

尝试将数据作为字符串而不是对象传递。这样做的原因是,如果您将对象指定为数据,那么 jQuery 使用查询字符串格式序列化数据,而服务器直接期望 JSON 格式。jQuery-

   $('#Button1').click(function () {
            var name = "ssd"; //$('#Text1').val();
            var fam = "dfss"; //$('#Text2').val();
            $.ajax({
                type: "POST",
                url: "testjob.aspx/InsertData",
                data: '{name: ' + "'" + name + "'" + ',fam: ' + "'" + fam + "'" + '}',
                contentType: "application/json;charset=utf-8",
                dataType: "json",
                success: function (response) { alert("ok"); },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert("Request: " + XMLHttpRequest.toString() + "\n\nStatus: " + textStatus + "\n\nError: " + errorThrown);
                }
            });
            return false;
        });
    });

C# 代码 - 制作 webmethodpublic

[System.Web.Services.WebMethod]
 public static void InsertData(string name, string fam)
  {
      //some code
  }
于 2013-09-28T12:50:52.167 回答
0

您的 Web 方法背后的代码必须是公开的,不受保护。

于 2013-09-28T12:49:52.037 回答