[英]windows phone 7 - phonegap stops jquery.ajax
這是我的第一個問題,如果我打破一些規則,那就很抱歉。 我知道這看起來有點重復,但我在這里和網上找到的每個答案都沒有給我任何結果。
我正在為iOS,Android和Windows Phone開發一個基於多平台,多頁,SOAP-XML Web服務的應用程序。 一切都適合iOS和Android,但是當移植到Windows Phone 7/8時,我遇到了這個令人討厭的問題:對jQuery.ajax(內部和外部)和衍生物($ .load,$ .get)的任何調用都會啟動,但顯然永遠不會得到答案。
目前我正在使用jQuery 2.0.2,Cordova 2.5.0和Weinre進行調試。 我切斷了jQuery mobile因為它生成的代碼的復雜性(所以沒有用於$ .mobile.allowCrossDomainPages)。
這是我的一個內部ajax導航調用的代碼
$("#base_page").load(
thePage,
function () {
console.log("------------ loadPage: ", thePage, " loaded");
$(document).trigger("pageload", [thePage]);
}
);
這根本沒有給我答案。
這是WS數據挖掘的一個外部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”,然后絕對沒有了。
我想我已經嘗試了所有我能在這里找到的以及網絡上的其他來源。 如果我不遺漏某些東西,我試過了
但無濟於事。 JSONP不是一個選項,因為服務器使用回調值觸發錯誤。
問題是我從未收到任何錯誤/成功消息(因此它與此不同),好像沒有數據來自WebService。 一切都像其他操作系統中的魅力一樣,所以我確信WebService調用是正確的。
作為一個絕望的解決方案,我已經設法通過XMLHttpRequest對象重寫內部調用,現在該部分已經可以了。 但在重寫對WebService的更復雜的POST調用之前,我想知道是否有任何方法可以恢復(更簡單且已經正常工作)的jQuery.ajax功能。
您的跨域請求選項是JSONP,CORS(通過服務器端“ Access-Control-Allow-Origin: *
”標頭,或通過cordova的本機http請求。前兩個選項要求服務器願意播放與您的申請球。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.