2013-06-21 72 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没有帮助和 –