Пустые аргументы Ajax ASP. NET Core 3.0 MVC - PullRequest
0 голосов
/ 04 мая 2020

Я использую ASP. NET Core 3.0 MVC приложение, в котором я выполняю следующий jQuery Ajax вызов:

return $.ajax({
    type: type,
    url: '/' + controller + '/' + action,
    data: jsonData,
    timeout: timeout,
    contentType: "application/json; charset=utf-8",
    success: function (returnedData) {
        successFunc(returnedData);
    },
    error: function (errMsg) {
        errorFunc(errMsg);
    }
});

, передавая ему объект данных

{
  input1: 'random',
  input2: '1',
  input3: '1',
},

Но он всегда передает нулевые аргументы через:

Null arguments from Ajax call

Я также пытался добавить addnewtonsoft json () при запуске, но похоже, это ничего не меняет.

Похожий вопрос здесь, на самом деле нет ответа: . Net Core 3.0 AJAX POST Body Always Null

Ответы [ 3 ]

0 голосов
/ 05 мая 2020

Так что сохраните код c#, как показано в вашем вопросе. В тебе js звони:

var data = JSON.stringify({ 
                 'input1': ‘inputvalue’,
                 'input2':’inputvalue’,
                 ‘input3’: ‘inputval’
               });

$.ajax({
        type: "POST",
        url: same as you have in the question
        data: data,

        contentType: 'application/json',

success: function (returnedData) {
        successFunc(returnedData);
    },
    error: function (errMsg) {
        errorFunc(errMsg);
    }

    });
0 голосов
/ 07 мая 2020

Ошибка, по-видимому, связана с определением типа содержимого.

   return $.ajax({
        type: type,

        url: '/' + controller + '/' + action,
        data: jsonData,

        success: function (returnedData) {
            successFunc(returnedData);
        },
        error: function (errMsg) {
            errorFunc(errMsg);
        }
    });

не определено contentType и правильно выполняет действие в контроллере.

0 голосов
/ 04 мая 2020

Я думаю, что ваша проблема в некотором роде связана с методом / типом HTTP, который вы используете, и с типом contentType, который вы передаете бэкэнду.

Я нашел отличную сводку contentType здесь

Если вы не хотите погружаться в это слишком глубоко, вы можете изменить свой contentType на application/x-www-form-urlencoded; charset=UTF-8, чтобы решить вашу проблему

...