我正在尝试在专门针对Windows Phone平台的Phonegap应用程序中通过SSL发布请求。一切都在我们的开发服务器上运行,但是当我切换到生产时,我的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"]
答案 0 :(得分:0)
经过长时间的调试后,我找到了解决方案......当然是跨域请求,如果你想通过SSL执行POST请求,dataType
必须是jsonp
。它写在crossDomain
设置下的文档http://api.jquery.com/jQuery.ajax中。我的通信基于SOAP协议(xml数据),阻止执行任何请求。如果我在没有SSL保护的服务器上发布请求(仍然是SOAP),它也可以。可能jQuery将我的请求视为不安全。我希望这可以帮助别人。