Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 数据未从$.ajax()传输到服务器端_Jquery - Fatal编程技术网

Jquery 数据未从$.ajax()传输到服务器端

Jquery 数据未从$.ajax()传输到服务器端,jquery,Jquery,嗨,我想发布一些字符串服务器端点击一个按钮 并有如下代码 $('#sendData').click(function () { $.ajax({ url: '/home/SendData', type: 'POST', dataType: 'string', data:

嗨,我想发布一些字符串服务器端点击一个按钮 并有如下代码

 $('#sendData').click(function () {
                  $.ajax({
                        url: '/home/SendData',
                        type: 'POST',
                        dataType: 'string',
                        data: JSON.stringify(somedata),
                        contentType: 'text/plain; charset=utf-8'                        
                    });
            });
在控制器中我有一个方法

[AcceptVerbs(HttpVerbs.Post)]
        public string SendData(string emaildat)
        {
              string data=emaildat;
        }
但是emaildat是空的(没有数据)


就是说ajax方法是正确的。请帮我解决这个问题。

嗯,
.ajax()
数据
属性需要具有键值对的对象映射或字符串(必须是查询字符串)

所以你不能只是在那里插入一个JSONized字符串。像这样做:

data: {
    mydata: JSON.stringify(somedata)
},

然后访问
.mydata
服务器端(不要忘记在那里解析)。

您可以尝试序列化表单,而不是将其作为JSON发送出去

data: $("#formid").serialize()

如果您将键设置为“emailDat”,我很确定modelbinder会将其选中并将其添加到actionmethod的参数中。我怀疑我可以为该数据(来自客户端)指定什么数据类型,比如publicstringsenddata(stringemaildat){stringdata=emaildat;},以及如何在服务器端解析它。