0

我对 Angular 6 和 .NET web api 完全陌生。我正在尝试使用HttpClient. 但我收到 CORS 错误:

选项http://localhost:64458/api/employee/insert 404(未找到)

从源“ http://localhost:4200 ”访问“ http://localhost:64458/api/employee/insert ”处的 XMLHttpRequest已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态。

core.js:15724 ERROR HttpErrorResponse {headers: HttpHeaders, status: 0, statusText: "Unknown Error", url: " http://localhost:64458/api/employee/insert ", ok: false, ...}

这是我的角度 service.ts 代码:

url = 'http://localhost:64458/api/employee';
constructor(private http:HttpClient) {}
httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json'}) };  

insert(obj: any): Observable<any>{
    return this.http.post<any>(this.url + '/insert', obj,this.httpOptions).pipe(map(res => res));
}

这是我的网络 API 代码:

[RoutePrefix("api/employee")]
public class HomeController : ApiController
{
    [HttpPost]
    [Route("insert")]
    public IHttpActionResult PostEmployee(dynamic data)
    {
        try
        {
            return Ok();
        }
        catch (Exception)
        {
            throw;
        }
    }
}

可能是什么问题?

4

2 回答 2

1

// 添加startup.cs的ConfigureServices方法

 services.AddCors();

// 在startup.cs的Configure方法中

 app.UseCors(x => x
               .AllowAnyOrigin()
               .AllowAnyMethod()
               .AllowAnyHeader());
于 2019-12-02T10:35:28.057 回答
0

首先在 Package Manager Console 窗口中,键入以下命令

Install-Package Microsoft.AspNet.WebApi.Cors

然后你可以像下面这样全局启用它

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        var cors = new EnableCorsAttribute("*", "*", "*");
        // or new EnableCorsAttribute("www.example.com", "*", "*");
        config.EnableCors(cors);
        // ...
    }
}

更多细节可以在他们的文档中找到

于 2019-12-02T11:34:15.107 回答