ASP. NET Ошибка ядра AJAX Почтовый запрос - PullRequest
3 голосов
/ 01 февраля 2020

Я пытался передать объект информации. NET Метод Core Controller. Передача одной строки и получение в порядке. Но когда я пытаюсь передать данные, извлеченные из таблицы, контроллер не получает. Смотрите код ниже.

Вывод ошибки консоли

POST https://localhost:44366/home/GetInformation 415

MVC Контроллер: Также пытался [FromQuery]. Он получает попадание успешно, но получает нулевое значение.

public class HomeController : Controller
{
    [HttpPost]
    public string GetInformation([FromBody]Student student)
    {
        return "Hi " + student.Name;
    }
}

JQuery AJAX: Я пытался поместить объект Raw, отправляя объекты непосредственно в виде данных

var fetcheddata = {
    Id: col1,
    Name: col2
};

$.ajax({
    url: "home/GetInformation",
    type: "POST",
    data: JSON.stringify(fetcheddata),
    beforeSend: function (xhr) {
        xhr.setRequestHeader("RequestVerificationToken",
            $('input:hidden[name="__RequestVerificationToken"]').val());
    },
    success: function (data, status) {
        //task
    },
    error: function (data, status) {
        //task
    }
});

Хотя, используя Fiddler с этими параметрами, он работает нормально.

POST https://localhost:44366/home/GetInformation HTTP/1.1
User-Agent: Fiddler
Content-Type: application/json
Host: localhost:44366
Content-Length: 28

{"Id": 1, "Name":"Cucumber"}

1 Ответ

1 голос
/ 01 февраля 2020

Попробуйте установить заголовок Content-Type в вашем запросе AJAX, вы можете увидеть, что он присутствует в вашем запросе Fiddler.

$.ajax({
  ...
  contentType: 'application/json'
  ...
});

Тип содержимого по умолчанию для jQuery. ajax () - 'application/x-www-form-urlencoded; charset=UTF-8'.

Полученная ошибка: HTTP 415 - неподдерживаемый тип носителя .

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