我们的 AngularJs WebApp 通信CORS针对 IIS 中托管的 WebApi 服务执行 CRUD 操作SSL,并要求证书。所有动词 - GET、POST、PUT、DELETE,在 Chrome 中均可用,但...IE11 仅 GET 和 POST 可用。DELETE 和 PUT 总是返回 Aborted Preflight 和“Access Denied”。
在我们的 WebApi 端,我们已经像这样启用了 CORS:
var webApiConfig = new HttpConfiguration();
webApiConfig.formatters.JsonFormatters.SupportedMediaTypes.Add(new System.Net.Http.Headers.MediaTypeHeaderValue("text/plain"));
webApiConfig.formatters.JsonFormatters.SupportedMediaTypes.Add(new System.Net.Http.Headers.MediaTypeHeaderValue("text/plain"));
SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
webApiConfig.EnableCors(new EnableCorsAttribute("*","*","*","*"){ SupportsCredentials=true});
在应用程序 CONFIG 部分的 Angular 上,我们拦截 $httpProvider 并添加如下标头:
$httpProvider.defaults.withCredentials = true;
$httpProvider.defaults.headers.post['Content-Type'] = 'text/plain';
$httpProvider.defaults.headers.put['Content-Type'] = 'text/plain';
然后我们会打电话
$http.delete(urlPrefix + '/api/members/' + id)
.then(function (res) {
return res.data;
});
任何帮助都将不胜感激。