2013-05-13 92 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

相關問題