[英]syntax of passing json object using Ajax
我試圖將這些json對象傳遞給后面的代碼
var obj = {
Name: '1',
Starting: '3',
Timeline: [
{
StartTime: '111',
GoesFor: '111'
}
,
{
StartTime: '112',
GoesFor: '112'
}
]
};
當然,下一步是對對象進行字符串化
var data = JSON.stringify(obj);
之后,我使用一個jQuery ajax調用將值傳遞給后面的代碼
$.ajax({
url: 'default.aspx/test',
type: 'POST',
contentType: 'application/json',
data: data,
success: function(result) {
$('#result').html(result.d);
}
});
關鍵是我從jQuery庫中獲取錯誤
POST http://localhost:63050/default.aspx/test 500 (Internal Server Error)
當我刪除obj變量並將其放入JSON.stringfy方法時,該問題已解決,就像這樣
var data = JSON.stringify({
obj: {
Name: '1',
Starting: '3',
Timeline: [
{
StartTime: '111',
GoesFor: '111'
}
,
{
StartTime: '112',
GoesFor: '112'
}
]
}
});
無論如何,將整個對象變量傳遞到json.stringify函數中,而不是在函數中進行聲明和初始化?
如果你們想知道,我背后的代碼看起來像這樣
public class MyModel
{
public string Name { get; set; }
public string Starting { get; set; }
public testing2[] Timeline { get; set; }
}
public class testing2
{
public string StartTime { get; set; }
public string GoesFor { get; set; }
}
[WebMethod]
public static string Test(MyModel obj)
{
return "Hello from test" + obj.Name + obj.Starting + obj.Timeline[0].StartTime + obj.Timeline[1].StartTime;
}
不,因為在您的示例中,您正在傳入一個對象,所以您需要將JSON數據放入對象中,以便將其解析為對象。 否則,您傳遞的只是一個變量數組。
基本上,您可以像這樣糾正問題:
$.ajax({
url: 'default.aspx/test',
type: 'POST',
contentType: 'application/json',
data: { obj: data },
success: function(result) {
$('#result').html(result.d);
}
});
這樣,您可以使用原始的stringify。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.