Я пытаюсь отправить запрос POST Http на сервер web-api2 на моем локальном хосте.мой клиент работает на http://localhost:4200, а мой сервер работает на http://localhost/MemoryGameServer/api/Test. (другое происхождение)
У меня есть код клиента angular7:
signUp(user: User){
const body : any = {
"FullName": "FullName",
"UserName": "UserName",
"Password": "Password",
"Email": "Email",
"UserId": 2
}
var headerOptions = new HttpHeaders({ 'Content-Type':'application/json' });
return this.http.post(this.rootUrl + 'Test1', JSON.stringify(body), {
headers: headerOptions,
withCredentials: true
});
}
и у меня есть вебКод сервера API 2:
public class clsTest
{
public string FullName { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
public string Email { get; set; }
public int UserId { get; set; }
}
[RoutePrefix("api")]
[EnableCors(origins: "http://localhost:4200", headers: "*", methods: "*")]
public class MainController : ApiController
{
[Route("Test1"), HttpPost]
public IHttpActionResult Test1(clsTest data)
{
return Ok("OK!!");
}
}
my WebApiConfig.cs Файл: ( Обновлено )
public static void Register(HttpConfiguration config)
{
EnableCorsAttribute cors = new EnableCorsAttribute("http://localhost:4200", "*", "*")
{
SupportsCredentials = true
};
config.EnableCors(cors);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
Но я получаю ошибку:
Как это исправить?Мне нужно сделать http-запрос с объектом Json на сервер.
Спасибо!
ОБНОВЛЕНИЕ: Я добавил этот код в свой файл web.config:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="http://localhost:4200" />
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept, Access-Control-Allow-Origin" />
<add name="Access-Control-Allow-Methods" value="POST,GET,OPTIONS,PUT,DELETE" />
<add name="Access-Control-Allow-Credentials" value="true" />
</customHeaders>
</httpProtocol>
И теперь я получаю эту ошибку: