Swift - 网络请求报App Transport Security has blocked a cleartext错

从iOS9开始,苹果要求所有网络请求必须使用HTTPS协议。若需继续使用HTTP,需在Info.plist文件中添加NSAppTransportSecurity字典,并设置NSAllowsArbitraryLoads为YES。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


http://www.hangge.com/blog/cache/detail_822.html


使用Xcode7编写iOS9应用时,如果获取http://数据时会报如下错误:

App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.

原因:
从iOS9起,新特性要求App访问网络请求,要采用 HTTPS 协议。 

如果仍想要使用HTTP协议,解决办法如下:
1,在Info.plist中添加 NSAppTransportSecurity 类型 Dictionary ;
2,在 NSAppTransportSecurity 下添加 NSAllowsArbitraryLoads 类型Boolean ,值设为 YES;
原文:Swift - 网络请求报App Transport Security has blocked a cleartext错


当然,也可以直接使用Source Code形式打开Info.plist,添加如下配置:
1
2
3
4
5
< key >NSAppTransportSecurity</ key >
< dict >
     < key >NSAllowsArbitraryLoads</ key >
     < true />
</ dict >

原文出自: www.hangge.com   转载请保留原文链接: http://www.hangge.com/blog/cache/detail_822.html

### 解决CORS跨域问题 #### 配置`Access-Control-Allow-Origin` 当处理跨域资源共享(CORS)时,服务器端需要正确配置响应头中的`Access-Control-Allow-Origin`字段[^1]。此字段指定了哪些源被允许访问资源。如果希望所有来源都能访问,则可将其设为通配符(`*`);不过出于安全性考虑,在生产环境中建议指定确切的URL。 对于某些框架或环境而言,仅仅修改这个单一属性可能不足以解决问题。例如,在Java Web应用程序中使用Tomcat作为容器部署时,发现即使设置了`<param-value>*</param-value>`也无法正常工作,这可能是由于Web应用初始化过程中过滤器(filter)加载顺序不当引起的[^2]。调整`web.xml`文件里定义filters部分,确保负责处理CORS逻辑的相关filter位于最前面可以帮助解决这类情况。 另外一种常见的方式是在Spring Cloud Gateway这样的微服务网关组件内全局设定CORS策略。通过YAML格式的应用程序配置文件来声明性的开启并自定义CORS行为: ```yaml spring: application: name: spzx-server-gateway cloud: nacos: discovery: server-addr: localhost:8848 gateway: discovery: locator: enabled: true globalcors: cors-configurations: '[/**]': allowedOriginPatterns: "*" allowedHeaders: "*" allowedMethods: "*" maxAge: 36000 ``` 上述配置片段展示了如何利用Spring Boot特性简化跨域权限管理过程,其中特别注意到了避免重复设置相同的CORS头部信息以防冲突发生[^3]。 为了验证这些更改是否有效以及进一步排查潜在误,开发者还可以借助浏览器开发工具查看网络请求详情,确认返回的数据包中含有预期的CORS相关HTTP头部。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值