sgl上的phonegap ajax请求错误

时间:2013-12-19 08:15:46

标签: ajax ssl cordova windows-phone-8

我正在尝试在专门针对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"]

1 个答案:

答案 0 :(得分:0)

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