首页 > 解决方案 > Cordova iOS 应用程序 AJAX POST 到 SSL 失败

问题描述

我们在 Visual Studio 2017 中开发了一个 Cordova 应用程序,它与 WebAPI 2.0 RESTful 服务进行通信。Android 应用程序与服务器成功通信,但 Apple iOS 应用程序失败,错误代码为 0。服务器具有有效证书,来自https://www.ssllabs.com/ssltest/index.html的测试表明 TLS 1.2已到位并将用于 Apple Transport Security。我们已经登录了 API,Apple 应用似乎根本没有进入 API。IIS 日志中也没有任何内容显示对服务器进行了 POST。

这是一个代码片段……</p>

        $.ajax({
            type: "POST",
            url: webService + "Login/",
            contentType: "application/json; charset=utf-8",
            data: JSON.stringify(loginViewModel),
            dataType: "json",
            crossdomain: true,
            async: true,
            headers: { 'X-Requested-With': 'XMLHttpRequest' }
        })
            .done(function (incomingUserData) {

                // Load the user's home page
                loadMainPage();

                endBusy();
            })
            .fail(function (jqXHR, textStatus, errorThrown) {

        // throw an error
            });

任何帮助是极大的赞赏。

标签: iosajaxcordovasslpost

解决方案


这类似于这个问题,用户面临相同的问题。

据他介绍,这是由于“仅限特定网站”的安全限制:

任何使用安全 SSL 加密的网站都必须明确列入白名单,因为 iOS 的互联网内容过滤器无法检查加密的“https”内容。不在“仅允许这些网站”列表中的加密网站将被 iOS 的 Internet 内容过滤器自动阻止。

您必须在此处手动将您的网址列入白名单:

在此处输入图像描述

我希望这可以解决您的问题,否则请告诉我。


推荐阅读