如何配置 .NET Core 以支持长尾词的跨域请求?
- 内容介绍
- 相关推荐
本文共计397个文字,预计阅读时间需要2分钟。
使用场景:由于浏览器的同源策略,即浏览器的安全功能,同源策略会阻止一个域的JavaScript脚本与另一个域的内容进行交互。这意味着,如果一个域的JavaScript脚本尝试访问另一个域的资源,将会出现以下错误。
错误提示:- 非同源访问错误:如果尝试从非同源域访问资源,浏览器会阻止这种访问并抛出错误。
如何属于非同源:- 协议不同:例如,http://example.com 与 https://example.com- 域名不同:例如,example.com 与 sub.example.com- 端口号不同:例如,example.com 与 example.com:8080
使用场景:由于浏览器的同源策略,即浏览器的安全功能,同源策略会阻止一个域的js脚本和另一个域的内容进行交互。
会出现以下报错:
怎样属于非同源呢?
协议、域名、端口号只要有一个不相同就是属于非同源
解决方案- JSONP通过浏览器标签去请求WebApi,从而避开跨域问题
- 通过后台进行模拟Http请求去请求WebApi
- 配置server端允许跨域
首先需要nuget一个依赖包:Microsoft.AspNetCore.Cors
然后进行服务注册和配置中间件
注意:中间件必须添加在
app.UseRouting();
------配置跨域中间件
app.UseAuthorization();
之间
此时跨域访问会成功
如果依然失败需要重新修改跨域策略
本文共计397个文字,预计阅读时间需要2分钟。
使用场景:由于浏览器的同源策略,即浏览器的安全功能,同源策略会阻止一个域的JavaScript脚本与另一个域的内容进行交互。这意味着,如果一个域的JavaScript脚本尝试访问另一个域的资源,将会出现以下错误。
错误提示:- 非同源访问错误:如果尝试从非同源域访问资源,浏览器会阻止这种访问并抛出错误。
如何属于非同源:- 协议不同:例如,http://example.com 与 https://example.com- 域名不同:例如,example.com 与 sub.example.com- 端口号不同:例如,example.com 与 example.com:8080
使用场景:由于浏览器的同源策略,即浏览器的安全功能,同源策略会阻止一个域的js脚本和另一个域的内容进行交互。
会出现以下报错:
怎样属于非同源呢?
协议、域名、端口号只要有一个不相同就是属于非同源
解决方案- JSONP通过浏览器标签去请求WebApi,从而避开跨域问题
- 通过后台进行模拟Http请求去请求WebApi
- 配置server端允许跨域
首先需要nuget一个依赖包:Microsoft.AspNetCore.Cors
然后进行服务注册和配置中间件
注意:中间件必须添加在
app.UseRouting();
------配置跨域中间件
app.UseAuthorization();
之间
此时跨域访问会成功
如果依然失败需要重新修改跨域策略

