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 调用。我已经在 android、ios 和 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(未找到)错误