2015-11-06 77 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'屬性。

相關問題