摘要:FireFox的跨網域問題(Cross Domain)
話說我在前一篇抓取奇摩的氣象一文中,
曾經提到FireFox的XMLHttpRequest的方法對於跨網域的GET與POST資料會發生錯誤
這裡指的跨網域是說,在同一個Web Site裡,FireFox的XMLHttpRequest是可以work的
如localhost、192.168.1.x等等,而當離開本機端或是跨Domain時,這時錯誤就會出現了
我找到2個方法可以解決他
一、在程式裡宣告底下的程式碼
首先我們宣告出XMLHttpRequest的物件出來
接著插入這個必要的程式
這一行程式主要是跟FireFox Browser說,請他忽略Cross Domain的問題
接著我們來看一下成果了
一開始出現這個提示視窗,是因為我們下了剛才那一段程式的原因,我們就選擇允許就好了
二、FireFox的環境設定
FireFox本身的安全性極高,但他有一些參數可讓我們去調整來因應
Step1:
我們在網址列打about:config,就可以看到他的參數設定了
接著我們在篩選器上key signed.applets.codebase_principal_support
這個是他的參數設定,他預設是False,這邊我將其改成True
Step2:
接著我們要去FireFox在我們本機的目錄設定
C:\Documents and Settings\你的電腦名稱\Application Data\Mozilla\Firefox\Profiles\
底下有xxxx.default資料夾,點進去裡面會有prefs.js的FireFox設定檔,我們copy他一份改成user.js
接著我們打開user.js,複製底這下這三行程式碼
user_pref("capability.policy.XMLHttpRequestToAnySite.sites", "http://localhost:1518");
user_pref("capability.policy.policynames","XMLHttpRequestToAnySite");
這邊的localhost:1518是在我本機的環境設定,大家就要依你們的實際位置加上去
接著我們也來看一下成果了
參考資料
XMLHttpRequest permission denied fix
How to fix ajax Error:uncaught exception:Permission denied to call method XMLHttpRequest.open