错误来源:
```
chat:1 Access to XMLHttpRequest at 'http://101.126.139.3:11000/api/receiver/message' from origin 'http://101.126.139.3' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
```
其实我的后端代码已经配置过这个,所以肯定不是后端的问题。
后端配置如下:
builder.Services.AddCors(options => options.AddPolicy("CorsPolicy",
set =>
{
set.SetIsOriginAllowed(origin => true)
.AllowAnyHeader()
.AllowAnyMethod()
.AllowCredentials();
}));
结合解决方案,首先你应该解决后端的跨域配置,使得在本地运行没有问题。然后再考虑IIS的问题。
今天在为我的代码修改的时候,偶然注意到控制台出现了下面的错误,这个请求是用来上传消息的,但是竟然失败,我运行本地的程序并没有这个问题。
我后来查到这个是因为IIS的webDAV会阻止某些请求,导致PUT等请求无法使用,于是我搜索了一些解决方案,似乎是版本不对的缘故,很多方案都不奏效。
因为我在很多台服务器上都配置过这个东西,之前都没这个问题。这个问题忽然出现,也是让我很尴尬。
于是我试着删除之前安装的这个功能,于是它确实工作了。前端的请求能够正常工作了。
解决方案:
删除WebDAB发布功能。
为什么这次会带来这个问题,这次重装为Windows系统之后,我又重装了IIS,我想着管他有用没用,功能我装了不少,没想到它会带来问题。