不能在浏览器上执行PUT方法



我正在训练创建一个angular应用程序

嗯,当我从Postman调用API时,它工作了但当我尝试使用HTTP调用它时。打开浏览器(firefox或chrome)我总是有这个错误

跨域请求阻塞:同源策略不允许读取远程资源https://localhost:5001/api/users/set-main-photo/25。(原因:没有在CORS标头' Access-Control-Allow-Methods '中找到方法)。

跨域请求阻塞:同源策略不允许读取远程资源https://localhost:5001/api/users/set-main-photo/25。(原因:CORS请求未成功).

我做了一些研究,并使用拦截器将其添加到我的头部方法:GET, PUT, POST, DELETE, HEADAccess-Control-Allow-Origin: *

还是同样的问题

请帮忙好吗?

注意:HTTP。GET和HTTP。POST工作正常谢谢你

您在开始开发时遇到了一个常见的问题。由于安全问题,您被限制在没有显式配置的情况下跨域名调用。根据你的API,你可以允许任何源调用它。

在你的请求本身设置头将不允许你绕过这个限制,你需要配置API。

你可以阅读https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS以获得更好的理解。

或者正如前面提到的,这篇文章也涵盖了这个主题https://stackoverflow.com/a/10892392/9994146

我使用

来解决这个问题
app.UseCors(x => x
.AllowAnyMethod()
.AllowAnyHeader()
.SetIsOriginAllowed(origin => true) // allow any origin
.AllowCredentials()); // allow credentials

之前是

app.UseCors( x => x.AllowAnyHeader().AllowAnyHeader().WithOrigins("https://localhost:4200"));

谢谢

相关内容

  • 没有找到相关文章

最新更新