我正在使用jQuery发送交叉源ajax请求,它们在IE11,Chrome和Firefox中运行正常,但它们在Edge中失败并出现以下错误:
SCRIPT7002:XMLHttpRequest:网络错误0x80070005,访问被拒绝.
有趣的是,我使用Fiddler试图弄清楚发生了什么,当Fiddler运行并捕获请求时,一切正常.一旦我关闭Fiddler或暂停捕获它就会再次失败.
该站点在我的本地计算机(webpack-dev-server)上运行,通过本地网络向WebAPI服务发出请求.
我的主机文件设置如下:
127.0.0.1 local.myapp.test
192.168.0.111 api.myapp.test
Run Code Online (Sandbox Code Playgroud)
它不应该是生产中的问题,因为站点和API将托管在同一个地方,但它对于开发和测试非常宝贵.
更新:
感谢Eric Law,我现在知道为什么它与Fiddler启用的行为不同 - Edge因为Fiddler所做的代理设置更改而内部网区域的安全级别较低而切换到本地Intranet区域.
我将把本地Intranet区域安全级别提升到中高,以匹配Internet区域,然后使用Fiddler尝试解决为什么Edge对CORS请求感到不安.
所以我有一个应用程序,其中用户(Devise)能够查看全部或主要模型的子集(在本例中为Schools),具体取决于用户是在分支机构,地区还是国家级别.
Branch belongs_to Region
School belongs_to Branch
Run Code Online (Sandbox Code Playgroud)
我想要做的是能够以对ActiveAdmin透明的方式连接权限(可能与范围).用户登录ActiveAdmin并显示仅允许他们查看的学校的列表.
所以我想这可能是ActiveAdmin解决方案,也可能是较低级别的解决方案.
任何想法都会非常欢迎:)