解决Transport Security has blocked a cleartext HTTP resource load since it is insecure

ios9以后苹果的AppTransportSecutiry(ATS)强制app使用更安全的Https协议来取代Http。所以会造成图中的报错信息。可以通过更改Info.plist中的配置解决。不过还是应该按照苹果的要求在项目中使用更安全的Https。

如果找不到 AppTransportSecuritySettings选项,可以手动添加Dictionary类型的NSAppTransportSecurity,然后在Dic中添加Boolean类型的NSAllowsArbitraryLoads并设置值为YES。

当遇到 "has been blocked by CORS policy: The request client is not a secure context and the resource is in more-private address space `local`" 错误时,这是因为浏览器实施了跨源资源共享(Cross-Origin Resource Sharing, CORS)策略,防止非同源(即不同域名或协议、端口)之间的通信,特别是对于那些被认为是私有地址空间(如 `localhost` 或 `file://`)的资源。 这个问题通常发生在以下几个场景: 1. 当你在本地开发环境下尝试从非同源服务器获取数据时。 2. 当你使用 HTTPS 请求访问运行在 `http://` 的本地服务时。 3. 如果你的页面是从 HTTP 协议加载,而请求的目标是使用 HTTPS,也会触发这个限制。 解决办法: 1. **更改服务器配置**: - 如果你是服务器端开发者,你可以设置响应头 `Access-Control-Allow-Origin`,允许特定的来源(如 `*` 允许所有,或指定具体的域名)访问你的资源。对于 `localhost`,可能需要配置为 `*` 或 `http://localhost`。 - 对于 JSONP 或 CORS Preflight 预检请求,确保你的服务器支持这些特性。 2. **使用代理服务器**: - 在开发环境中,你可以设置一个简单的代理服务器(比如使用 Node.js 的 `http-proxy-middleware`),将请求转发到正确的源,这样浏览器就不会再检查 CORS 限制。 3. **使用 `--disable-cors` 或 `--no-referrer` 参数**: - 如果是在 Chrome 或其他支持的浏览器中,你可以临时禁用 CORS 限制来测试,但这仅限于调试阶段,生产环境不可行。 4. **修改浏览器设置**: - 对于某些现代浏览器,可以在开发者工具中临时更改浏览器设置,允许特定请求的跨域访问。但同样不适用于生产环境。 5. **迁移到同一域或安全上下文**: - 将资源部署到相同的域名或使用 HTTPS,以符合 CORS 的安全要求。 记住,CORS 主要用于保护用户隐私和安全,所以只在必要时才绕过它。在实际项目中,确保遵守最佳实践。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值