Ajax в результате вызова 500 {внутренняя ошибка сервера} - PullRequest
0 голосов
/ 05 апреля 2020

Я пытаюсь отправить json данные через ajax звонок. Ниже приведен код, который я использовал. Я использую node.js в качестве бэкэнда. a_filters, b_filters, и др c. являются массивами. Я погуглил ошибку, но не смог заставить код работать.

var filters =
                {
                    "a" : a_filters,
                    "b" : b_filters,
                    "c" : c_filters,
                    "d" : d_filters
                };
        $.ajax({
            url : "query/get-filtered-data",
            dataType : 'json',
            async: "true",
            data:JSON.stringify(filters),
            contentType: 'application/json; charset=utf-8',
            success : function(data){


            },
            failure: function(data){
                alert('got an error');
            }
        });

РЕДАКТИРОВАТЬ: Это мой код на стороне сервера.

var express = require('express');
var router = express.Router();

//the URL below is correct since it redirects from 'query/'
router.get('/get-filtered-data', function (req, res, next) {

    console.log(req);    
    var filters = JSON.parse(req.body);
    console.log("foo");
    var a_filters = filters["a"];
    var b_filters = filters["b"];
    var c_filters = filters["c"];
    var d_filters = filters["d"];

    res.send(query);
});

conosle.log('foo') ничего не печатает. console.log(req) req.body пусто. Заранее большое спасибо.

1 Ответ

0 голосов
/ 06 апреля 2020

Поскольку вы ссылаетесь на req.body, вам нужно использовать метод маршрутизатора, который включает в себя body-post или put.

Возможно, вам также потребуется включить тип: "POST" в ваш jQuery Ajax method.

Существует более общий вопрос semanti c о том, следует ли использовать get со строкой запроса для передачи параметров при извлечении данных, а не с использованием тела запроса, но это вопрос разработки API а не причина ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...