我正试图通过ajax从表单发帖。如果我从数据中取出"post":
,则post方法失败,出现500错误或400错误。我该怎么做呢?
$('#new_post').submit(function(){
var name = $('#post_name').val();
var content = $('#post_content').val();
$.ajax({
type: 'POST',
url: '/posts',
dataType: 'JSON',
data:{
"post":{
"name": name,
"content": content
}
},
success: function(data){
console.log("passed");
},
error:function(data){
console.log("failed")}
})
});
答案 0 :(得分:0)
错误400& 500分别定义为错误请求和内部服务器错误。服务器很可能是这里为您的错误请求抛出错误的罪魁祸首。虽然很难对此进行诊断,(不知道您要连接的是哪种API),但我建议您查看服务器的文档或来源,以确保遵循正确的规则集。
以下是使用ExpressJS的服务器代码示例,它将拒绝上述代码:
...
app.post('/posts', function(req, res){
if((!req.body) || (!req.body.post)) {
return res.status(400).send('Bad Request');
}
/* ... */
});
分享有关您发送请求的API的信息可能更合适,尤其是在400个错误的情况下。某些服务器实现也可能存在jQuery处理数据的方式问题(urlencode),我认为这不是这里的情况,因为请求使用'post'属性。