Я работаю над клиентским приложением Angular и бэкэндом ASP.NET Core Web API и сталкиваюсь с проблемой, пытаясь получить вызов от Angular, который, кажется, отлично работает от Postman.
машинописный код:
exportScript(commands: ScriptCommand[]) {
this.http.post(this.baseUrl + 'api/ScriptCommands/GenerateScript', JSON.stringify(this.scriptCommands)).subscribe();
}
C # API call:
[HttpGet]
[Route("api/ScriptCommands/GenerateScript")]
public IActionResult GenerateScript([FromBody]List<ScriptCommandViewModel> commands)
{
var mappedCommands = MapCommands(commands);
var stream = ProcessCommands(mappedCommands);
return File(stream, "application/xml", "generatedScript.xml");
}
Когда я использую вызов Angular, я получаю обратно 400 Bad Request, но если я скопирую строковый JSON-скрипт scriptCommand в тело запроса Postman, он работает просто отлично.
Спасибо за помощь, всем!
ОБНОВЛЕНИЕ: Изменен код Typescript - я все еще получаю ответ HTTP 400 Bad Request, но моя вкладка «Сеть» в Chrome показывает это в заголовках запроса. Является ли тип содержимого «text / plain» проблемой?
Accept: application/json, text/plain, */*
Content-Type: text/plain
Origin: http://localhost:4200
Referer: http://localhost:4200/createScript
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36