文章出處

跨域加載

一要進行一定的配置見下面

$( document ).bind( "mobileinit", function() {
    // Make your jQuery Mobile framework configuration changes here!

    $.mobile.allowCrossDomainPages = true;
});

而,有時候開發在真機測試比較麻煩,所以建議使用谷歌瀏覽器進行測試,允許file協議

"C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-web-security

右鍵谷歌瀏覽器的快捷方式,把目標改成上述內容

【引用】http://blog.csdn.net/mociml/article/details/8880161

1、phonegap不存在跨域訪問問題,原因是phonegap使用的是 file:// 協議Phonegap wiki里面說: ”The cross-domain security policy does not affect PhoneGap applications. Since the html files are called by webkit with the file:// protocol, the security policy does not apply.”
跨域訪問問題出現是因為瀏覽器的同源限制策略:這里的“源”指的是主機名、協議和端口號的組合;我們可以把一個“源”看作是某個web頁面或瀏覽 器所瀏覽的信息的創建者。 同源策略,簡單地說就是要求動態內容(例如,JavaScript或者VBScript)只能閱讀與之同源的那些HTTP應答和cookies,而不能閱讀來自不同源的內容。也就是重點在使用http或https協議,而不是 file:// 協議。


2、phonegap與jquerymobile使用
http://jquerymobile.com/demos/1.0/docs/pages/phonegap.html 文檔中有詳細說明
要點:
(1)$.support.cors =true;使jQuery支持跨域訪問
(2)$.mobile.allowCrossDomainPages=true; 如果需要跨域訪問頁面文件,設置為true;
(3)添加phonegap白名單
文檔說明地址  http://docs.phonegap.com/en/2.7.0/guide_whitelist_index.md.html#Domain%20Whitelist%20Guide
默認develop版本不做任何限制,支持所有網絡訪問,建議production版本修改只包含需要的白名單

如果還有問題:

1)關閉pushstate

 

[javascript] view plaincopy
 
  1. $.mobile.pushStateEnabled = false;        

 

 

2)強制延長url加載超時時間

[java] view plaincopy
 
  1. super.setIntegerProperty("loadUrlTimeoutValue"60000);  

 

最后別忘了,添加各自對應操作系統的權限

如android,打開AndroidManifest.xml文件,添加網絡訪問權限:

<uses-permission android:name="android.permission.INTERNET" />


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()