Отправка POST-запроса Ajax не определена для Express

#javascript #ajax #node.js #express

#javascript #ajax #node.js #экспресс

Вопрос:

Я пытаюсь отправить некоторые данные для анализа. Сценарий на стороне клиента выглядит следующим образом:

 function addURL(link) {
        console.log("Adding url...");
        $.ajax({
            type: "POST",
            url: location.protocol   "//"   location.host   "/shorturl/create",
            crossDomain: true,
            contentType: "application/json",
            data: JSON.stringify({url:link}),
            success: function(data){
                $("#shortenedURL").html(data.shortenedURL);
            },
            error: function(err){
                console.log("Ran into an error... "   err);
            }
        });
}
  

В моем приложении express, на одном из маршрутизаторов, у меня:

 router.post("/create", function(req, res){

console.log(req.body);
console.log(req.body.url);
var url = req.body.url; }
  

Я получаю «undefined», а затем URL-адрес «Не удается получить свойство» неопределенного».

Я не могу понять, где я ошибаюсь…

Комментарии:

1. вы уверены, что отправляемая вами ссылка url: имеет значение для ajax?

2. какую версию expressjs вы используете и отправляете свой app.js код

Ответ №1:

Вам нужно использовать bodyParser:

app.js:

 var bodyParser = require('body-parser')
  , app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));