iphone上的HTTPS请求未发送到服务器

Posted

技术标签:

【中文标题】iphone上的HTTPS请求未发送到服务器【英文标题】:HTTPS request on iphone not sent to server 【发布时间】:2013-06-16 13:21:51 【问题描述】:

我正在使用 phonegap 为 iphone 开发应用程序。 使用 HTTP 提交 ajax 请求时,一切正常。但是当我切换到 HTTPS 时,请求不会发送到服务器。相同的代码适用于 android 上的 HTTP 和 HTTPS。

以下是我正在使用的代码,提前感谢您的帮助

var xmlRequest = $.ajax(
    url : "https://test.com",
    type : 'POST',
    contentType : "text; charset=utf-8",
    data : sr,
    dataType : "text",
    headers :  SOAPAction : '"'+soapaction+ '"' ,
    success : function( data, textStatus, jqXHR ) 
        console.log("----- xmlRequest.responseText: " + xmlRequest.responseText);
        SOAPClient._onSendSoapRequest(method, async, callback, sch, data);
    ,
    error : function( jqXHR, textStatus, errorThrown ) 
        console.log("----- xmlRequest.responseText: " + xmlRequest.responseText);
        console.log("----- errorThrown = " + errorThrown + " textStatus = "+ textStatus );
        ServiceErrorMessage(method, jqXHR.status, errorThrown, xmlRequest.responseText);
    ,
    cache: false
);

【问题讨论】:

【参考方案1】:

将此添加到 AppDelegate.m 文件的末尾

@implementation NSURLRequest(DataController)
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host

    return YES; 

@end

【讨论】:

这是否违反了 ios 准则?这是私有 API 吗?

以上是关于iphone上的HTTPS请求未发送到服务器的主要内容,如果未能解决你的问题,请参考以下文章

数据未从 iphone 传输到真实设备上的 iWatch (AppleWatch)

iPhone 上的隧道网络请求

Ajax 错误回调未针对 iPhone 触发

iPhone 上的 SSDP

java——HttpClient 代理模式发送Http Https(未完成,没贴代码呢)

各类http返回状态详解