今天發現jquery 1.7.2 在ie8下面的沒有調用$.get()方法。
1,然后各種調試,最后發現:把ie把關了,再打開$.get()。會調用,再第二次調用的用的時候發現又不行了。於是我推斷是ie緩存的問題,把ie緩存清除后,果然可以了。但是客戶不可能知道清理緩存。所以只能自己想辦法了
在網上發現各大朋友都給了個方法就是用jquery自帶的方法:
$.ajaxSetup({cache: false });
另外還有分析是,ie是根據請求的url是不是一樣來是否發送請求,對於同一請求,ie只發送一次http請求,所以同一請求發送多次,但ie實際是不會發送的。
有了這個原因:那么就好辦了,可以在url后面加個時間戳。
$.get( "imgsUpload", {imgsPath:path,timeStamp: new Date().getTime()}, function(data){ } );
2,以下問題就是個人問題了,但是請求是能發送到后台了,並且也執行了,也返回了.但是不能執行ajax的回調方法。
但在其它瀏覽器是正常的。分析返回過來的data,發現亂七八糟的。那就是返回時的數據類型不對,我返回的json,但是我想都是以字符串形式返回的,所以我在服務器端有如下代碼:
response.setContentType("text/plain;charset=UTF-8");
ff,chrome是正常的,但是ie去只能把識別為text,不能解析成json,所有沒有調用ajax的回調方法
經過測試發現,可以不用設置消息頭,當然要設置也是可以的,但是不是text/plain,而是:
response.setContentType("application/json;charset=UTF-8");
以上問題應該是很簡單的問題,但是好多朋友竟然不知道,而且問題綜合在一起了很難發現,特此做筆記。