簡體   English   中英

App Transport Security已阻止明文HTTP資源

[英]App Transport Security has blocked a cleartext HTTP resource

在此輸入圖像描述

我在swift中使用Socket.IO庫並且我一直收到此錯誤:

App Transport Security已阻止明文HTTP(http://)資源加載,因為它不安全。 可以通過應用程序的Info.plist文件配置臨時例外。

當我嘗試發送http請求時。 我根據官方的蘋果文檔添加了plist鍵,但它沒有幫助。

你需要像這樣糾正它:

在此輸入圖像描述

為了更容易,這是info.plist中的正確xml

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>localhost</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
                <true/>
                <key>NSTemporaryExceptionMinimumTLSVersion</key>
                <string>TLSv1.1</string>
            </dict>
        </dict>
    </dict>

localhost更改為您的實際服務器

檢查表中的NSAppTransportSecurity選項

如果您希望與任何域進行所有通信,則可以執行以下操作:

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

但是,您應該在開發階段使用最新版本。

我發現更方便的另一種解決方法是使用NSAllowsArbitraryLoads鍵默認禁用App Transport Security。 因此,您未包含在NSExceptionDomains字典中的任何域(或者如果您根本不包括NSExceptionDomains )將不受App Transport Security的約束。

在此輸入圖像描述

我在屏幕截圖中看到錯誤的密鑰和拼寫錯誤。 這是一個工作示例:

屏幕

Xcode項目 - >轉到info.plist並單擊+按鈕然后添加(應用程序傳輸安全設置)展開,允許任意負載設置為是。 謝謝

我在xCode 8.2工作。 它有點不同,但編輯PLIST文件需要在App Transport Security Settings Line中添加這兩個項目...:

Allow Arbitrary LoadsAllow Arbitrary Loads in Web Content ...並為它們提供關鍵YES

它對我有用,希望這對你有用,對不起我的英語。

在此輸入圖像描述

在此輸入圖像描述

@William Kinaan有最好的答案,但最好確保在異常域“localhost”下面添加NSAllowsArbitraryLoads ......而不是在更高的NSTransportSecurity級別上打開,直到所有域。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM