500 - 当我在ajax发表帖子时发生内部服务器错误
问题描述:
我正在尝试通过ajax从表单发帖。如果我从数据中删除"post":
,post方法失败,出现500错误或400错误。我该怎么做呢?500 - 当我在ajax发表帖子时发生内部服务器错误
$('#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")}
})
});
答
错误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'属性。
你能检查在铬控制台上的错误吗? –
console.log(“failed”);警报(“失败”)。它给了我在铬控制台500错误。 – Ann
这就是你的代码,它在开发控制台上显示的是什么? –