2014-08-31 132 views
0

在以下ajax請求中,我正在向節點服務器發送一個請求,請求名稱爲fileName的文件。Jquery未顯示Ajax數據

阿賈克斯

$.ajax({ 
    type: "POST", 
    data: {'imageFileName': fileName}, 
    contentType: "json", 
    url: '/myRoute', 
    success: function(data){ 
     if(!data){ 
      errorMessage(); 
     } 
     else{ 
      display(data); 
     } 
    } 
}) 

路由器

router.post('/myRoute', function(req, res){ 
    console.log(req.imageFileName) //Undefined 
    res.end(); 
}) 

然而,當我登錄服務器端的請求,我得到沒有fileName一個巨大的物體。鑑於該請求被命名爲req,req.imageFileName產生未定義。我做錯了什麼,我不能在服務器端訪問fileName

+0

你想發送文件還是隻是文件名? – hjpotter92 2014-08-31 20:50:53

+0

只是文件名。 – goodcow 2014-08-31 20:52:59

+1

我認爲'contentType'應該是'application/json'而不只是'json',它是一個MIME類型。 – keeshux 2014-08-31 20:59:36

回答

0

嘗試刪除數據中的報價。還要交叉檢查一次c文件名中的內容。

$.ajax({ 
    type: "POST", 
    data: {imageFileName: fileName}, 
    contentType: "json", 
    url: '/myRoute', 
    success: function(data){ 
     if(!data){ 
      errorMessage(); 
     } 
     else{ 
      display(data); 
     } 
    } 
}) 

http://api.jquery.com/jquery.ajax/

+0

引號沒有區別,名稱正確。 – goodcow 2014-08-31 21:05:04

0

嘗試以下操作:

$.ajax({ 
type: "POST", 
data: {'imageFileName': fileName}, 
url: '/myRoute', 
success: function(data){ 
    if(!data){ 
     errorMessage(); 
    } 
    else{ 
     display(data); 
    } 
} 
}) 

服務器端

var bodyParser = require('body-parser'); 
app.use(bodyParser.urlencoded({ 
extended: false 
})) 

我想看看它的內容類型這就是給你的麻煩。

+0

我有'app.use(bodyParser.json()); app.use(bodyParser.urlencoded());'我app.js. – goodcow 2014-08-31 21:04:47

+0

Nope不行,謝謝你的建議。 – goodcow 2014-08-31 21:09:50

+0

你可以試試這個嗎?我想看看它是否給你帶來麻煩的內容類型 – SivaDotRender 2014-08-31 21:25:27

0

標籤位於body-parser提供的請求的body中。因此,這工作。

router.post('/myRoute', function(req, res){ 
    console.log(req.body.imageFileName) //Correct 
    res.end(); 
})