ajaxie拒絕訪問
『壹』 ie瀏覽器ajax請求異常
在ie9以下,你就要用兼容性寫法了。先確保js中不報錯,js報錯了就很容易不往下執行了。再看ajax參數格式是不是寫錯了,再看ajax的一些基本屬性寫沒寫,再找不到就打斷點一個一個地方測,最後在考慮是不是兼容性問題
望採納
『貳』 ajax請求在ie沒數據
這種應該是兼容問題。
可以打開瀏覽器的開發者工具,看看有沒有報錯。使用高版本的jquery和低版本的ie瀏覽器可能會存在兼容問題,可以考慮降低jquery的版本。
『叄』 為什麼ajax在谷歌瀏覽器可以執行但在ie中無法執行
因為ie的緩存做的不好,為了防止ajax不停的提交,有時候會不執行,直接返回。當傳遞的參數值相同時ajax會不執行。
所以解決辦法就是傳遞一個參數保證每次執行的時候參數值不同就行,所以可以加一個隨機函數,或者加一個時間戳就可以了。
『肆』 ie7瀏覽器關於AJAX跨域訪問的問題
考慮瀏覽器兼容性問題,建議使用JQuery做AJAX功能。
『伍』 jquery ajax在ie瀏覽器失效
這很明顯是 ie不支持jquery啊,兼任性問題,你把看jquery 版本是否支持你得IE版本啊!
『陸』 js ajaxfileupload.js IE8 上傳文件 拒絕訪問
安全限制,必須要主動點擊input控制項才行,觸發點擊是不行的,隱藏的話不要用display:none;請使用opacity:0來隱藏(可以滑鼠點擊,visibility:hidden似乎也不行),IE8的話是filter:Alpha(opacity=0);然後讓input一直追隨滑鼠移動,實現方式有很多,你找個合適的吧。總之上傳需要主動點擊input
-------------------------------
如果以上方法你不接受,那麼你只能用flash來實現上傳了
『柒』 jquery ajax在ie瀏覽器下無法運行,火狐瀏覽器卻正常,求解
您好!很高興為您答疑!
確認下jQuery是不是正確,然後將
jQuery.get(ckurl,function(html){alert(html);$("#gc_type").append(html)}
換成
$.get(ckurl,function(html){alert(html);$("#gc_type").append(html)}
您可以在火狐社區了解更多內容。希望我的回答對您有所幫助,如有疑問,歡迎繼續在本平台咨詢。
『捌』 ajaxfileupload.js IE 下 拒絕訪問
測試了,通過點擊file的「瀏覽」選擇文件之後,隱藏 file,是可以上傳的。
『玖』 為什麼ajax請求json數據,在IE瀏覽器裡面不能正常顯示
大家都知道,在不同域的情況下是不能發送ajax請求的,瀏覽器會報如下錯誤:
同時,內嵌的iframe中無法進行跨域通信的,也就是說不同域的iframe是無法互相讀取數據的(當然利用hash變化可以從父window傳入數據到子iframe,不過並沒有什麼意義)。iframe跨域通信時,瀏覽器會報如下錯誤:
其實這兩個問題都是由於跨域造成的。
下面就介紹如何解決這個問題。
其實問題的關鍵就在於,瀏覽器在解析ajax請求地址時會和當前網頁的地址進行比較,如果是跨域的,那就禁止掉並且報錯。那麼我們如果讓瀏覽器解析出的ajax地址和當前網頁的解析地址一樣,瀏覽器不就不會禁止我們的請求了么。
那麼瀏覽器是如何解析url的呢?
首先當瀏覽器訪問一個域名時,會查詢本地的DNS緩存中是否有關於這個網址對應ip地址,如果有的話,直接從本地取得ip地址然後訪問,如果沒有,瀏覽器就會向DNS伺服器發出DNS請求獲得該域名對應的ip地址然後存入本地緩存然後訪問。
那麼介於以上問題,我們只要在本地偽造一條域名的解析方式,然後再通過偽造的域和目標域進行跨域請求不就可以了么。
windows下的打開C:\Windows\System32\drivers\etc
這個文件夾下有一個hosts文件,如果改過hosts來上谷歌的同學對這個應該很熟悉,在hosts文件里加上這樣一段代碼:
127.0.0.1 a.目標網址.com
這樣你的訪問a.目標網址.com就和訪問localhost一樣了,這樣做的目的是方便搭起本地的服務時,本地的服務和目標的域名之間就不會存在跨域問題了,這樣就能在本地,通過在目標網頁植入iframe標簽的方式,向目標域發起跨域請求,取得目標域的數據。
直接上代碼(用了jQuery)
腳本代碼,直接插在父域
var mySrc = "http://a.目標網址.com:9000/myIframe.html"; document.domain = "目標網址.com"; //關鍵代碼,將域提升到根域 $("body").append('<iframe src=' + mySrc + ' name="myIframe" id="getData"></frame>'); //向目標網頁插入iframe var interval; function start() { $("#getData").attr({"src": mySrc}); interval = setInterval(function() { window.myIframe.run(getLogitic); //向子域傳入回調函數 },10000) } function stop() { clearInterval(interval); } function getLogitic(orderId) { $.ajax({ url: '/query?'+ orderId +'&id=1&valicode=&temp=' + Math.random(), method: 'GET', success: function(res) { console.log(res); //可以在此再調用子域的方法,向本地文件傳輸數據 }, error: function(err) { console.log('err: ', err); } }) }
iframe中html代碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <script src="bower_components/jquery/dist/jquery.js"></script> <script> document.domain = "目標網址.com"; //關鍵代碼,將子域提升到根域 var int; function run(callback) { //此請求用於向本地請求數據,然後根據本地的數據,利用父域傳過來的回調函數向目標域發起請求,得到目標域的數據 $.ajax({ url: './getOrderList.json',//本地數據存儲的地方,偷懶直接寫了個json文件,可以是資料庫中的數據 method: 'GET', success: function(res) { var data = res.list; int = setInterval(function(){ callback(data[0]); //執行父域傳入的回調函數 data.shift(); if (data.length === 0) clearInterval(int); }, 1000); }, error: function(err) { console.log(err) } }) } </script> </body> </html>
注意:
只有將iframe提升到根域,這樣才能與父window通信,耳document.domain指令只能提升當前域到當前的根域,這也是必須要修改本地hosts文件的原因,這是解決跨域問題的根本。
在抓取目標網頁數據之前,要先看目標網頁發送ajax請求的方式,得到請求的api,通過目標網頁的控制台插入腳本,然後運行,得到要得到的數據,在通過和本地請求的方式,發送到本地。
下面是抓取某物流查詢網頁中物流信息的過程:
塗掉的為目標網址;這是向目標網頁插入我的腳本,成功後網頁中就會被插入了一個地址為本地的,但是域名和目標域相同的iframe。
結果
這些數據可以在請求成功會傳回本地。
其實小編也是初識前端,還處在學習和探索當中,希望能與大家一起學習進步。
『拾』 javascript ajax拒絕訪問的問題
IE6,IE8支持的XMLHTTP組件不一樣。同時也受瀏覽器安全限制。
做AJAX,建議用JS腳本框架來操作,簡單方便 又兼容各種瀏覽器。
如用JSer(國內的全功能JS框架)實現你上面的功能只需如下簡短代碼:
JSer("#btnid").click(function(){
JSer.url("sample.txt").ajax({
success:function(d){
alert(d);
}
});
});