0

我进行了很多搜索,但无法找到一个可行的解决方案来解释为什么我的发布请求没有将其数据发送到服务器。我可以在没有数据的情况下发送请求并从服务器获取结果,但我无法将数据发送到服务器。我已将其缩小到“数据”属性,并假设我只是做错了什么。谢谢你。

客户

var scriptURL = "default/scripts/serverside/Scripts.aspx";
$.ajax({
    type: "POST",
    url: baseURL + scriptURL + "/SaveItem",
    data: "{}",                                           //works (to return a result)
    //data: "{sendData: '" + dataPackage + "'}",            //does not work
    //data: dataPackage,                                    //does not work
    //data: { sendData: dataPackage },                      //does not work
    //data: { "sendData": dataPackage },                    //does not work
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (result) {
        de("server result:" +result);
    }
});

服务器

[WebMethod]
public static string SaveItem(string sendData)
{
    string result = "received: " + sendData;
    return result;
}

请帮忙,我似乎无法让它工作并且知道它必须是一个语法问题......

我发现了类似的问题(但没有有效的答案):

4

2 回答 2

1

试试这个:

$.ajax({
   type: "POST",
   url: baseURL + scriptURL + "/SaveItem",
   data: $.toJSON({ sendData: dataPackage }),                      
   contentType: "application/json; charset=utf-8",
   dataType: "json",
   success: function (result) {
       de("server result:" +result);
   }
});

toJSON会将您的 JS 对象转换为正确的 JSON 字符串。你也可以使用JSON.stringify

于 2013-07-22T16:02:02.203 回答
0

尝试这个:

var scriptURL = "default/scripts/serverside/Scripts.aspx";
$.ajax({
    type: "POST",
    url: baseURL + scriptURL + "/SaveItem",
    data: {sendData: "string to send" }
    dataType: "json",
    success: function (result) {
        de("server result:" +result);
    }
});
于 2013-07-22T15:58:58.313 回答