phonegap jQuerymobile 跨域访问
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
$.mobile.pushStateEnabled = false;2)強制延長url加載超時時間
super.setIntegerProperty("loadUrlTimeoutValue", 60000);
最后別忘了,添加各自對應操作系統的權限
如android,打開AndroidManifest.xml文件,添加網絡訪問權限:
<uses-permission?android:name="android.permission.INTERNET"?/>
總結
以上是生活随笔為你收集整理的phonegap jQuerymobile 跨域访问的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .net xml ajax 注册 ash
- 下一篇: Java应用级产品开发平台APDPlat