2014-08-31 4 views
0

В следующем запросе ajax я отправляю запрос на мой сервер узлов, чтобы выполнить некоторую работу над файлом с именем fileName.Данные Jquery Ajax не отображаются

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

+0

Просто имя файла. – goodcow

+1

Я думаю, что 'contentType' должен быть' application/json', а не просто 'json', это MIME-тип. – keeshux

ответ

0

Попробуйте удалить цитату в data. Также перекрестите чек, который находится в имени файла.

$.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

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

+0

Nope не работает, спасибо за предложение. – goodcow

+0

Можете ли вы попробовать это вместо этого? Я хочу посмотреть, не является ли это типом контента, который дает вам проблемы – SivaDotRender

0

Тег находится в поле body, предоставленном body-parser. Поэтому это сработало.

router.post('/myRoute', function(req, res){ 
    console.log(req.body.imageFileName) //Correct 
    res.end(); 
}) 
Смежные вопросы