我使用 Visual Studio 15 创建了一个应用程序,使用 ASP.NET Web api 作为后端,在前端使用 Angular 6。我只是想根据数据库中的数据在前端显示/添加/删除用户。我使用 Angular 6 中的 HttpClient 和 GET-Request 来显示用户数据工作正常。我尝试以相同的方式实现 POST/DELETE 请求。这是来自 Angular 的调用:
deleteUser(id: number): Observable<{}> {
const url = `${this.userURL}/${id}`;
return this.http.delete(url, { withCredentials: true })
.pipe(
catchError(this.handleError('deleteData'))
);
}
web API:我在 Global.asax.cs 中处理了预检请求:
void Application_PreSendRequestHeaders(Object sender, EventArgs e)
{
var origin = Request.Headers.Get("Origin");
var validOrigins = ConfigurationManager.AppSettings["allowedCorsOrigins"].Split(',');
if (validOrigins.Any(o => o == origin))
{
Response.StatusCode = (int)HttpStatusCode.OK;
Response.Headers.Set("Access-Control-Allow-Origin", origin);
Response.Headers.Set("Access-Control-Allow-Credentials", "true");
Response.Headers.Set("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, access-control-allow-credentials, access-control-allow-headers, access-control-allow-methods, access-control-allow-origin, ontent-type, Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers, Authorization"); // "Content-Type, Accept, Authorization, withcredentials, Prefer"
Response.Headers.Set("Access-Control-Expose-Headers", "Claims, *");
Response.Headers.Set("Access-Control-Allow-Methods", "GET,PUT,POST,OPTIONS,PATCH,DELETE");
}
}
慕工程0101907
素胚勾勒不出你
慕桂英3389331
随时随地看视频慕课网APP
相关分类