500 - 我在ajax中发帖时发生内部服务器错误

时间:2015-11-06 19:15:25

标签: ajax

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

});

1 个答案:

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