歡迎您光臨本站 註冊首頁

Apache的配置不當引起ajax在IE下無法使用,請問怎麼辦?

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

Apache的配置不當引起ajax在IE下無法使用,請問怎麼辦?

前不久配置了一台Ubuntu伺服器,用於部門內部使用。發現同樣基於PHP+jQuery的代碼,放在這台伺服器上后在IE下就無法正常使用,表現在IE下調用jQuery的ajax方法失敗,在Firefox和Safari下均沒有問題。開始懷疑是IE的bug,但把上述代碼放在一台虛擬主機上,即使是IE也可以正常調用ajax。因此猜測可能和Apache返回的HTTP頭有關,不知道我的猜測是否正確。懇請諸位指點。

附件是我用Firefox的Live HTTP Header擴展捕捉到的HTTP頭。
《解決方案》

我感覺好像還是程序的問題,但是資料太少,不好分析
《解決方案》

即使是最簡單的程序都不行,如下:

$(document).ready(function() {
        $().ajaxError(function() {
                alert('no...');
        });
        $.getJSON("http://server/inform.php", function(data) {
                alert(data.errorCode);
        });
});

在Firefox中好好的,IE下就是不行。inform.php的返回如下:

{"errorCode":0}
《解決方案》

改用redhat好了
《解決方案》

用ubentu做webserver 的很少
《解決方案》

是不是編碼的問題?把編碼改為utf-8試試
《解決方案》

直覺說和apache沒有關係,否則的話firefox下也就不能正常運行了!
我覺得是ie和ff的兼容性方面的問題! 再看下程序,特別是ajax中用到js的部分,一步一步做個輸出,在ie和ff下比較一下就知道了!
《解決方案》

無意中想起來這個帖子,後來解決了,和程序沒關係,是伺服器編碼問題。
《解決方案》

補充一句:時間太久,已經記不清楚具體怎麼解決的了,不過這個問題隱藏得很深,因為我一直都是使用UTF-8編碼的,但伺服器配置時,某一個小項的編碼仍為gb2312,因此導致IE下出錯。

這個問題怪就怪在,在IE下載入這個UTF-8編碼的頁面時毫無問題,而一旦在此頁面調用Ajax時,IE就報錯。起初自然會以為通過Ajax調回來的JSON編碼不對,但在另一台伺服器上卻表現正常,後來幾經排查,發現還是在伺服器編碼設置上,沒有完全設為UTF-8。

具體過程忘記了,先在想想很遺憾,當時怎麼就沒做筆記呢!

這個問題當時困擾我很久,也想了很多辦法,後來還是請公司的首席架構師來幫忙解決的,牛人就是牛人阿。
《解決方案》


[火星人 ] Apache的配置不當引起ajax在IE下無法使用,請問怎麼辦?已經有153次圍觀

http://coctec.com/docs/service/show-post-25913.html