ssl上的phonegap ajax请求错误

Posted

技术标签:

【中文标题】ssl上的phonegap ajax请求错误【英文标题】:phonegap ajax request error over ssl 【发布时间】:2013-12-19 08:15:46 【问题描述】:

我正在尝试通过 SSL 在专门用于 Windows Phone 平台的 Phonegap 应用程序中发布请求。一切都在我们的开发服务器上运行,但是当我切换到生产环境时,我的 AJAX 请求失败了。下面我粘贴我的 AJAX 调用。我已经在 androidios 和 Windows Phone 设备上测试了我的应用程序。它不仅适用于 Windows Phone。来自 xhr 对象的任何帮助程序日志都是空的……我不知道出了什么问题。这个问题是否可能与我们在生产服务器上使用的证书有关?或者有任何限制阻止在 Windows Phone 中通过 SSL 调用 AJAX 请求?我什至不知道如何开始调试,因为所有日志都是空的...您的帮助将不胜感激!

这是我的代码

$.ajax(
    url: myServiceUrl,
    type: "POST",
    data: myXmlData,
    dataType: "xml",
    contentType: "application/soap+xml; charset=utf-8",
    success: function (data, status, xhr) 
        console.log(status);
        console.log(xhr.responseText);
        onSuccess(data, status, xhr);
    ,
    error: function (xhr, ajaxOptions, thrownError) 
        console.log("error");
        console.log(xhr.statusText);
        console.log(xhr.responseText);
        console.log(thrownError);
        onError(xhr, ajaxOptions, thrownError);
    
);

我的日志

Log:["error","DebugConsole517333971"]
The thread 0xe4c has exited with code 259 (0x103).
Log:["error","DebugConsole517333972"]
The thread 0xed4 has exited with code 259 (0x103).
Log:["","DebugConsole517333973"]
The thread 0x360 has exited with code 259 (0x103).
Log:["","DebugConsole517333974"]

【问题讨论】:

添加“phonegap”标签,我正在尝试,但编辑效果不佳;) 我试过了,但它被重命名为“cordova”标签:) 啊,不好。不一样:) 更新(已解决): 经过长时间的调试,我找到了解决方案...当然是跨域请求,如果您想执行 POST 请求SSL 你的dataType 必须是 jsonp。它写在 crossDomain 设置下的文档api.jquery.com/jQuery.ajax 中。我的通信基于阻止执行任何请求的 SOAP 协议(​​xml 数据)。如果我在服务器 没有 SSL 保护(仍然是 SOAP)上发布请求,它也可以工作。可能 jQuery 将我的请求视为不安全的。我希望这可能对某人有所帮助。 【参考方案1】:

经过长时间的调试,我找到了解决方案...当然是跨域请求,如果您想通过 SSL 执行 POST 请求,您的 dataType 必须是 jsonp。它写在文档http://api.jquery.com/jQuery.ajax crossDomain 设置下。我的通信基于阻止执行任何请求的 SOAP 协议(​​xml 数据)。如果我在没有 SSL 保护的服务器上发布请求(仍然是 SOAP),它也可以工作。可能 jQuery 将我的请求视为不安全的。我希望这可能对某人有所帮助。

【讨论】:

以上是关于ssl上的phonegap ajax请求错误的主要内容,如果未能解决你的问题,请参考以下文章

Android 设备上的 phonegap 应用程序不发送 AJAX 请求

使用Phonegap的IOS上的Jquery ajax请求-Ajax不起作用

Phonegap Cordova Ajax 请求 404(未找到)错误

Phonegap iOS ajax 请求永远不会完成

ajax中的phonegap XML解析器在iOS上出现错误

使用自签名证书通过 HTTPS 进行 CORS 请求的 Phonegap 应用程序