2013-05-13 126 views
0

我需要将JSON数据发送到服务器方法。无法从JavaScript发送JSON数据到服务器

这种方法效果当我通过一个简单的 '测试' 的字符串,而不是一个如下:

function SendToServer() { 
    $.ajax({ 
     type: "POST", 
     url: "Default.aspx/SaveClientGrid", 
     data: "{ gridData: 'test' }", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json" 
    }); 
} 

不起作用:

function SendToServer() { 
    var data = JSON.stringify(datasource); 
    $.ajax({ 
     type: "POST", 
     url: "Default.aspx/SaveClientGrid", 
     data: "{ gridData: " + data + " }", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json" 
    }); 
} 
+1

“不起作用”是什么意思?数据是否未到达服务器?有问题吗?错误讯息? – JJJ 2013-05-13 07:12:57

+0

尝试:'data:{gridData:data}'。并请发布您的后端或您的控制台的错误信息 – drinchev 2013-05-13 07:13:50

+0

您是否尝试过var data = JSON.stringify({gridData:datasource});和数据:ajax对象中的数据? – 2013-05-13 07:14:52

回答

1

想通了,这一个工程:

function SendToServer() { 
    var data = JSON.stringify(datasource); 
    $.ajax({ 
     type: "POST", 
     url: "Default.aspx/SaveClientGrid", 
     data: "{ gridData: '" + data + "' }", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json" 
    }); 
} 

我不得不周围添加数据单引号 -

data: "{ gridData: '" + data + "' }" 
+0

试试看看它是否也能正常工作:'data:JSON.stringify({'gridData':data})' – 2013-05-13 16:07:26

+0

如果您的服务器配置正确,您的答案将无法正常工作 – drinchev 2013-05-13 16:09:22

+0

data:JSON.stringify({'gridData' :data})没有工作 – gangt 2013-05-13 16:50:39

-2

你有没有试图改变

data: "{ gridData: " + data + " }", 

data: "{ gridData: ' + data + ' }", 

甚至没有引号?也许一个愚蠢的猜测,但像这样的事情发生的所有时间:)

+0

我试过所有这些:data:“{gridData:”+ data +“}”;数据:数据; data:“{gridData:'+ data +'}”;最后一个命中服务器,但该值变成字符串'+ data +'而不是数据变量的内容 – gangt 2013-05-13 07:21:55

+0

什么是 data:“{gridData:'JSON.stringify(datasource)'}”; 返回? – Dropout 2013-05-13 07:23:52

+0

它发送字符串'JSON.stringify(datasource)'而不是它的值 – gangt 2013-05-13 07:34:50