Javascript Jquery Ajax POST请求发送数据问题

Javascript Jquery Ajax POST请求发送数据问题,javascript,ajax,jquery,post,Javascript,Ajax,Jquery,Post,我已经搜索了很多,但没有找到一个有效的解决方案来解释为什么我的post请求没有将其数据发送到服务器。我可以在没有数据的情况下发送请求,并从服务器获取结果,但我无法将数据发送到服务器。我已经把范围缩小到“数据”属性,并假设我只是做错了什么。多谢各位 客户端 var scriptURL = "default/scripts/serverside/Scripts.aspx"; $.ajax({ type: "POST", url: baseURL + scriptURL + "/Sav

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

客户端

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;
}
请帮助,我只是不能让它工作,并知道它必须是一个语法问题

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

试试这个:

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);
    }
});
试试这个:

$.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

您可以打开浏览器的Javascript调试器并打开带有此编辑的页面:$.post('baseURL+scriptURL+“/SaveItem',{sendData:'foobar');您应该将数据作为字符串传递。Jquery将序列化字符串本身。另请参见:@chrisHardie,使用引号中的“dataPackage”运行它,并检查调试器,它只是说我正在将sendData=dataPackage作为一个大字符串发送…@RMK,我只是尝试将所有内容作为字符串传递,但它不起作用…请不要添加
[已解决]
标题或问题答案摘要-答案本身用于后一目的,复选标记用于前一目的。如果你想添加比其他回答者给出的更多的细节,请添加你自己的答案和细节。我尝试了这个,但没有效果。然而,即使我发送了任何东西,它仍然应该以服务器接收到的内容进行响应,对吗?这是我得到的最接近的结果,但现在数据正在传递到服务器(firebug是这么说的),但我无法得到带结果的响应。我假设,您不能简单地将JSON传入对象声明为字符串……此外,我必须添加',ScriptMethod(ResponseFormat=ResponseFormat.JSON)]'Cool!:)很高兴你拿到了!