2013-10-01 45 views
0

WORKS不

$.post('Schoolyear/Create', { data: JSON.stringify({ schoolyearId: 1 }) }); 

抛出异常,内部服务器错误500:无效的JSON原始的 '数据'

WORKS

$.ajax('Schoolyear/Create', { data: JSON.stringify({ schoolyearId: 1 }), type: 'POST' }); 

为什么我不能使用显式$ .post并且必须改写类型?

回答

0

试试这样说:

$.post("Schoolyear/Create", { "schoolyearId": 1 }); 

你不需要JSON.stringify其已经是一个JSON字符串。 而且你也不需要数据部分。有关更多示例,请参阅jquery $.post page

+0

啊我刚刚只读了jquery ajax文档,谢谢。关于json。为什么{schoolyearId:1}是你的json字符串?它的JavaScript对象字面值会是一个JSON字符串,它会引用schoolyearId键。我刚刚尝试过你的代码,因为我认为它不起作用。它只适用于JSON.stringify(...):-) – Elisabeth

+0

为什么你添加引号?如果你想让它成为json,那么schoolyearId必须在引号中,但数字1不是;-) – Elisabeth

+0

经验教训总是通过http://jsonlint.com/ –