#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}));