Я новичок в разработке и ajax.Я использую node.js, экспресс и ejs.Я пытаюсь опубликовать некоторые данные и вернуть значение с помощью ajax.Я продолжаю получать ошибку 404, и я не уверен, почему.Кроме того, я использовал экспресс-генератор для создания проекта, а также установил body-parser.
Вот запрос ajax, который находится в моем файле index.ejs.Он находится внутри тега script в заголовке.
function post() {
$.ajax({
type: "POST",
url: "/test",
data: 'TEST',
contentType: "application/json; charset=utf-8",
dataType: "json",
}).done(function (data) {
console.log("Did it work? "+ data);
});
}
После нажатия кнопки выполняется ajax, и я получаю 400 неверных запросов.Я думаю, что это может быть связано с тем, что находится в файле index.js.Это также может быть способ, которым экспресс-генератор создал сервер.Опять же, я новичок в этом, поэтому любые входные данные здесь будут хороши.
index.js:
var express = require('express');
var router = express.Router();
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json()); // support json encoded bodies
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies
/* GET home page. */
router.get('/', function(req, res, next) {
res.render('index');
});
app.post('/test', function(req, res) {
console.log(req.body);
res.type('json');
res.send("hi");
});
module.exports = router;
Может ли это быть потому, что страница индекса отображается с помощью ejs?
Заранее спасибо!
Обновление: 400 исправлено, теперь получается 404
Ошибка 400 была вызвана моей попыткой отправить объект, а нестрока.Теперь я получаю ошибку 404.Как я и просил, моя файловая структура ниже.
.
├── app.js
├── bin
│ └── www
├── package.json
├── public
│ ├── images
│ ├── javascripts
│ └── stylesheets
│ └── style.css
├── routes
│ ├── index.js
│ └── users.js
└── views
├── error.ejs
├── index.ejs
└── layout.ejs
7 directories, 9 files
Я все еще пытаюсь понять это, и генератор сделал файлы для меня.Насколько я понимаю, файл www в папке bin является сценарием запуска.Файл app.js вызывает все остальное.Я пытаюсь поместить метод post в файл index.js, но я не совсем уверен, должен ли он идти туда или, может быть, в файле app.js.Если вам нужна какая-либо другая информация, например, как выглядят другие файлы, я был бы рад показать вам.