取消

Abp_配置跨域为*通配符时报跨域请求错误

当配置跨域域名为*时,signalr链接报错


问题

像这样配置: CorsOrigins

然后在浏览器调试窗口中就会看到如下错误: 错误

解决

解决方式应该有两种:第一种是修改服务端跨域配置为自己判断;第二种是修改前端不使用cookie,但是这样会有新的问题就是无法支持负载均衡。我采用第一种,因为第二种要修改abp源码并自己发布js包。

  1. 使用SetIsOriginAllowed代替WithOrigins中间件配置跨域 SetIsOriginAllowed SetIsOriginAllowed

  2. 修改SignalR连接设置,不使用cookie,这种方式我没有试,不知道是否可行

1
2
3
4
5
var hubConnectionBuilder = new HubConnectionBuilder();
var hubConnection = hubConnectionBuilder.WithUrl("https://localhost:21021/Hub",options => {
    options.UseDefaultCredentials = false;
}).Build();
await hubConnection.StartAsync();

原因

大概是因为在同时使用*配置跨域和AllowCredentials时服务器会返回一个警告信息,这个修改是从2.2版本开始的,操作signalR识别不了,然后就不进行链接请求了。


参考资料

本文会经常更新,请阅读原文: https://dashenxian.github.io/post/Abp_vue%E9%85%8D%E7%BD%AE%E8%B7%A8%E5%9F%9F%E4%B8%BA%E9%80%9A%E9%85%8D%E7%AC%A6%E6%97%B6%E9%94%99%E8%AF%AF-copy ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

知识共享许可协议

本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 小神仙 (包含链接: https://dashenxian.github.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 (125880321@qq.com)

登录 GitHub 账号进行评论