【发布时间】: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 将我的请求视为不安全的。我希望这可能对某人有所帮助。
标签: ajax ssl cordova windows-phone-8