当前位置: 首页 > 知识库问答 >
问题:

不允许向本地主机发出请求-swift

穆俊名
2023-03-14

我无法在Swift5,Xcode11.6(11e708)和IOS13.6的服务器上发布帖子。我收到此错误:

2020-08-26 08:20:55.252545-0400 iris[1642:721953] Task <BBB3809B-7BEF-4F60-9685-774027ADA7E6>.<1> finished with error [-1022] Error Domain=NSURLErrorDomain Code=-1022 "The resource could not be loaded because the App Transport Security policy requires the use of a secure connection." UserInfo={NSUnderlyingError=0x2810ad710 {Error Domain=kCFErrorDomainCFNetwork Code=-1022 "(null)"}, NSErrorFailingURLStringKey=http://localhost:8000/searchImage/, NSErrorFailingURLKey=http://localhost:8000/searchImage/, NSLocalizedDescription=The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.}
error=Error Domain=NSURLErrorDomain Code=-1022 "The resource could not be loaded because the App Transport Security policy requires the use of a secure connection." UserInfo={NSUnderlyingError=0x2810ad710 {Error Domain=kCFErrorDomainCFNetwork Code=-1022 "(null)"}, NSErrorFailingURLStringKey=http://localhost:8000/searchImage/, NSErrorFailingURLKey=http://localhost:8000/searchImage/, NSLocalizedDescription=The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.}

我跟踪了这个问题如何删除Xcode8中的派生数据?并更新了我的info.plist

<key> App Transport Security Settings </key>
<dict>
    <key> Allow Arbitrary Loads </key>
    <true />

注意,我现在不关心安全问题。此外,我已经尝试了一个干净的构建,然后删除了我的派生数据文件夹,但我仍然无法发布到服务器。在另一个项目中,我在info.plist中设置了这个键,一切都很好。有什么建议吗?

共有1个答案

邹桐
2023-03-14

如果将info.plist编辑为源代码,则要允许所有域,请更改以下值:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/> 
</dict>

则应如下所示为属性列表:

对于更好的方式,您可以默认禁用它,并像下面这样为特定域添加异常。

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <false/>
    <key>NSExceptionDomains</key>
    <dict>
        <key>yourdomain.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSIncludesSubdomains</key>
            <true/>
        </dict>
    </dict>
</dict>
 类似资料:
  • 我正在使用Volley对本地主机上的地址进行GET请求,但由于以下错误而失败: 我在这里遵循了指南:Android 8:不允许明文HTTP流量,并做了以下操作: 已创建网络安全xml文件: 将其添加到我的清单中,并允许明文通信: 我还是会犯同样的错误。从“http”更改为“https”会出现以下错误: 我在MainActivity中的代码: 接下来我能做什么?

  • 问题内容: 如何只允许本地请求进行Elasticsearch?所以命令像: 只能在localhost上运行,并要求类似: 会被拒绝? 因为从我看来,elasticsearch默认情况下允许它。 编辑: 根据http://www.elasticsearch.org/guide/reference/modules/network.html, 您可以管理参数以允许主机。默认情况下,它设置为 问题答案:

  • 问题内容: 为了解决CORS问题,我在那儿写了 在我的服务器站点中 但是在我的开发过程中,我看到了这个错误 我以为allow-origin:*会解决一切吗?但是为什么说标头包含多个值? 问题答案: 意外两次启用CORS时,这是一个常见问题。检查以确保未在apache中启用它,或者未设置标头两次。作为健全性检查,您可以尝试删除标头并将其重新添加回去,然后再提供响应。 例如:

  • 相对来说,我对Ajax还比较陌生,只是负责这个跨域调用。我们的网页上有一个文本框,用户将使用它来执行公司名称的搜索。通过单击文本框旁边的按钮,将请求Ajax调用。不幸的是,web服务位于一个单独的域中,所以这自然会引起问题。 以下是我为完成这项工作所做的最大努力。我还应该注意,这个调用的目的是以XML格式返回结果,这些结果将在请求的< code>success部分进行解析。 这是再次出现错误消息:

  • 问题内容: 我将后端API与使用它的前端HTML5应用程序分开作为一个单独的项目。我正在使用Yeoman进行前端开发。Yeoman在localhost:3501上运行,后端在localhost:3000上运行。当我从浏览器发出API请求时(使用AngularJS的$ http),我遇到了相同的原始策略: AFAIK,仅当在不同域中发出请求时,才应启动相同的来源策略。当我们从本地主机到本地主机(尽管

  • 以下图片: 当我运行这个命令时,我可以在http://localhost:4444/上看到Selenium 任何帮助让这两种方式中的任何一种有效。

  • 目前使用Laravel 5.5和大嘴,与laravel安装程序一起。 我试图发出GET请求(其他HTTP请求也会出错),但似乎不起作用。 此代码不起作用: 但是下面的代码工作得非常好 我不明白为什么我的古斯能够请求google.com但无法连接到我自己的localhost服务器(到所有端口)。 任何帮助都将不胜感激。 谢谢

  • 问题内容: 我从此链接克隆了一个有关Web浏览器上实时图像处理的项目:然后,我不允许我的浏览器访问我的相机。我收到此JavaScript警报: 嗯,网络摄像头没有启动。你有摄像头吗?您同意了吗?刷新后重试。并且允许按钮不会显示,就像我访问他的网站一样。 问题答案: 您是否正在通过localhost访问通过HTTP提供的网页?如果您通过访问它,Chrome会征求您使用相机的许可。 如果您直接打开网页