2012-07-09 41 views
3

這裏是我的代碼:如何使用PhoneGap中的jQuery將數據發佈到遠程服務器(跨域)?

function makeRequest() { 
    //alert("inside makeRequest()"); 
    var settings = { 
     type: "POST", 
     url: URL + "?" + REQUEST, 
     dataType: "json" , 
     error: function(XHR,textStatus,errorThrown) { 
      console.log(XHR); 
      console.log("textStatus: " + textStatus); 
      console.log("errorThrown: " + errorThrown); 
      //alert ("XHR="+XHR+"\ntextStatus="+textStatus+"\nerrorThrown=" + errorThrown); 
     }, 
     success: function(data,textStatus) { 
      $("body").append(data); 
      console.log(data, textStatus); 
     }, 
     headers: { 
      "Access-Control-Allow-Origin" : "http://xxx.com", 
      "Access-Control-Allow-Headers" : "X-Requested-With", 
      "X_APNSAGENT_API_KEY" : app_key, 
      "X_APNSAGENT_API_VERSION" : version, 
      "X_APNSAGENT_API_TIMESTAMP" : timestamp, 
      "X_APNSAGENT_API_SIGNATURE" : hash, 
     } 
    }; 
    $.ajax(settings); 
} 
makeRequest(); 

在PhoneGap的維基,它說:

「跨域安全策略不影響PhoneGap的應用由於HTML文件與文件的webkit稱爲: //協議,安全策略不適用。「

但我怎麼稱呼它?

此外,我使用jQuery的1.6.4.js

我試圖找到一些days.Please解決方案幫助我,救我......感謝

回答

2

這裏是我的方法當我上個月遇到這樣的問題時使用。

$.ajax({ 
      url:dataUrl, 
      dataType: 'jsonp', 
      success:function(response){ 
       //success call back 
      }, 
      error:function(XMLHttpRequest, textStatus, errorThrown){ 
           //error call back 
         } 
      } 
    }); 

如果你看到雷米夏普後在此鏈接http://remysharp.com/2007/10/08/what-is-jsonp/,它會更加明朗。

希望它對你有所幫助。

+0

如果我們使用dataType「jsonp」,我們應該編輯後端代碼。 – 2012-07-11 03:32:00

+0

是的,根據我的經驗,它是唯一的方法來提出跨域請求。 – 2012-07-11 04:36:20

+0

在phonegap wiki中,它說: 「跨域安全策略不會影響PhoneGap應用程序。由於html文件是由webkit使用file://協議調用的,所以安全策略不適用。 – 2012-07-11 08:17:49

1

我自己解決這個問題。

最後我發現jquery導致了這個問題。

在ajax request.I之前添加代碼:$ .support.cors = true;

最後,一切正常。

有關詳細信息,請訪問我的博客http://cashwordpress.sinaapp.com(但抱歉,我只是發佈中文文本)。

相關問題