2015-11-06 81 views
0

我正在尝试通过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")} 
    }) 

}); 
+0

你能检查在铬控制台上的错误吗? –

+0

console.log(“failed”);警报(“失败”)。它给了我在铬控制台500错误。 – Ann

+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'属性。

相关问题