簡體   English   中英

windows phone 7 - phonegap停止jquery.ajax

[英]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”,然后絕對沒有了。

我想我已經嘗試了所有我能在這里找到的以及網絡上的其他來源。 如果我不遺漏某些東西,我試過了

  • $ .support.cors = true,從這里這里開始
  • cache的任意組合:false,crossDomain:true,xhrFields:{withCredentials:true}
  • 此處停用Cordova代碼的win.XMLHttpRequest部分
  • 每個本地網址描述,絕對或相對,簡單(僅限頁面)或完整路徑(以/ www或/ app / www開頭,甚至是完整的傻瓜MS協議)
  • URI在config.xml中列入白名單

但無濟於事。 JSONP不是一個選項,因為服務器使用回調值觸發錯誤。

問題是我從未收到任何錯誤/成功消息(因此它與不同),好像沒有數據來自WebService。 一切都像其他操作系統中的魅力一樣,所以我確信WebService調用是正確的。

作為一個絕望的解決方案,我已經設法通過XMLHttpRequest對象重寫內部調用,現在該部分已經可以了。 但在重寫對WebService的更復雜的POST調用之前,我想知道是否有任何方法可以恢復(更簡單且已經正常工作)的jQuery.ajax功能。

您的跨域請求選項是JSONP,CORS(通過服務器端“ Access-Control-Allow-Origin: * ”標頭,或通過cordova的本機http請求。前兩個選項要求服務器願意播放與您的申請球。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM