windows phone 7-phonegap停止jquery.ajax
这是我在这里的第一个问题,如果我违反了一些规则,很抱歉。我知道这似乎是重复的,但我在这里和网上找到的每一个答案都没有给我任何结果 我正在为iOS、Android和Windows Phone开发一个多平台、多页面、基于SOAP-XML web服务的应用程序。iOS和Android一切正常,但当移植到WindowsPhone7/8时,我遇到了一个棘手的问题:任何对jQuery.ajax(内部和外部)和衍生品($.load,$.get)的调用都会启动,但显然从未收到响应 目前,我正在使用jQuery 2.0.2、Cordova 2.5.0和Weinre进行调试。由于jQueryMobile生成的代码非常复杂(因此,$.mobile.allowCrossDomainPages没有任何用处),因此我中断了jQueryMobile 这是我的一个用于导航的内部ajax调用代码windows phone 7-phonegap停止jquery.ajax,jquery,ajax,windows-phone-7,cordova,cors,Jquery,Ajax,Windows Phone 7,Cordova,Cors,这是我在这里的第一个问题,如果我违反了一些规则,很抱歉。我知道这似乎是重复的,但我在这里和网上找到的每一个答案都没有给我任何结果 我正在为iOS、Android和Windows Phone开发一个多平台、多页面、基于SOAP-XML web服务的应用程序。iOS和Android一切正常,但当移植到WindowsPhone7/8时,我遇到了一个棘手的问题:任何对jQuery.ajax(内部和外部)和衍生品($.load,$.get)的调用都会启动,但显然从未收到响应 目前,我正在使用jQuery
$("#base_page").load(
thePage,
function () {
console.log("------------ loadPage: ", thePage, " loaded");
$(document).trigger("pageload", [thePage]);
}
);
这根本没有给我答案
下面是WS-data mining的一个外部ajax调用的代码
$.ajax({
url: soapURL,
type: "POST",
dataType: "xml",
data: createSOAPRequest(soapWS, soapParams),
contentType: "text/xml; charset='utf-8'",
beforeSend: function(xhr) {
console.log("•••••••••••••• ready to send ajax");
xhr.setRequestHeader('SOAPAction', soapURL);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log("•••••••••••••• error");
navigator.notification.alert(textStatus + "\n" + errorThrown);
},
success: function(theXML) {
console.log("•••••••••••••• success");
console.log(theXML);
// .......... building-page code
}
});
这会在控制台中写到“•••••••准备发送ajax”,然后就再也没有了
我想我已经尝试了所有我能在这里找到的和在网络上的其他来源。如果我没有错过什么,我试过了
- $.support.cors=自或起为真
- cache:false、crossDomain:true、xhrFields:{withCredentials:true}的任意组合
- 从开始停用Cordova代码的win.XMLHttpRequest部分
- 每个本地url描述,绝对或相对、简单(仅页面)或完整路径(从/www或/app/www开始,甚至是完整的Dool MS协议)
- URI在config.xml中被列为白名单
作为一个不顾一切的解决方案,我已经设法通过XMLHttpRequest对象重写了内部调用,这一部分现在已经好了。但是在重写对WebService更复杂的POST调用之前,我想知道是否有任何方法可以恢复jQuery.ajax的功能(更简单且已经工作)。跨域请求的选项是JSONP、CORS(通过服务器端“
访问控制允许来源:
”头,或通过cordova的本机http请求。前两个选项要求服务器愿意与您的应用程序合作