Отправка тела json через выборку из приложения React CRUD в контроллер ASP. Net. Когда сообщения попадают в действие, они имеют нулевой контент - PullRequest
0 голосов
/ 17 июня 2020

Я создаю приложение CRUD в качестве учебного упражнения в React, которое взаимодействует с ASP API в фоновом режиме. Я использую fetch для вызовов API. Все вызовы [GetAll] и [GetById] работают нормально, но я не могу заставить работать свои [Сообщения]. Я могу отправить Json данные из тела через Postman, и Action в API получит их нормально, но когда я пытаюсь запустить те же данные из проекта React, это не работает.

Действие на контроллере выглядит так:

[Route("colours/new")]
        [HttpPost]
        public ActionResult AddColour([FromBody]ColourModel colour)
        {
            colour.DateAdded = DateTime.Now; 

            _storageRepository.AddNewColour(colour);

            return Content("Your colour has been added");
        }

Я проверяю процесс в React Dev Tools в моем браузере, и я вижу, что когда я привязываю свой Json значения заполнены. Однако, когда он достигает точки останова на контроллере API, объект имеет значение NULL. Как я уже упоминал ранее; Действие получило дату от Postman без проблем, и я нацелен на правильное действие из моего приложения React, потому что оно попадает в мою точку останова.

import { handleResponse, handleError } from "./apiUtils";
const baseUrl = process.env.REACT_APP_API_URL + "/colours/";

export function saveColour(colour) {
  const data = JSON.stringify(colour);
  return fetch(baseUrl + "new", {
    method: "POST", 
    headers: { "content-type": "application/json" },
    body: data,
  })
    .then(handleResponse)
    .catch(handleError);
}

и handleResponse + handleError выглядят так:

export async function handleResponse(response) {
  if (response.ok) return response.json();
  if (response.status === 400) {
    const error = await response.text();
    throw new Error(error);
  }
  throw new Error("Network response was not ok.");
}

export function handleError(error) {
  console.error("API call failed. " + error);
  throw error;
}

Может ли кто-нибудь увидеть, где я могу ошибиться? Почему мой объект Json поступает в API как ноль?

Заранее спасибо

Jed

...