2013-06-21 77 views
0

我的問題是,我必須帖子在以下格式的JSON對象:JSON鑰匙找不到

{ "key1": "value1", 
    "key2": 2, 
    "options": { 
       "content": "lorem ipsum" 
      } 
} 

但我不斷收到內部服務器錯誤:密鑰「選項」未找到。 這是我的js代碼:

$("#button").click(function(){ 
var json_test = { 
     "key1": "value1", 
     "key2": 2, 
     "options": { 
        "content": "lorem ipsum" 
       } 
    } 
    $.ajax 
    ({ 
     type: "POST", 
     url: '/test/url/', 
     dataType: 'json', 
     data:json_test 
    }) 
}); 

而且也這是來自螢火蟲的帖子內容:

element_type Text 
learning_page 1 
options[content] lorem ipsum 

我明明做錯事,但我只是無法弄清楚它是什麼。有任何想法嗎?

+0

保留字可能是 「選擇」? – Cherniv

+1

你的服務器端代碼是什麼? JS看起來是正確的。 – SpenserJ

+0

*你在哪裏*得到這個錯誤? –

回答

2

我不知道,但你可能會丟失字符串化JSON的

$("#button").click(function(){ 
var json_test = { 
     "key1": "value1", 
     "key2": 2, 
     "options": { 
        "content": "lorem ipsum" 
       } 
    } 
    $.ajax 
    ({ 
     type: "POST", 
     url: '/courses/api/elements/', 
     dataType: 'json', 
     data:JSON.stringify(json_test) 
    }) 
}); 

也可以嘗試加入

contentType: "application/json; charset=utf-8" 

到您的jQuery選擇

+0

如果Firebug是撿發佈數據正確,那麼它不應該被串化。 jQuery似乎在接收對象時會自動執行此操作。 – SpenserJ

+0

取決於服務器如何預期數據。 –

+0

stringifying沒有幫助和 –