ie瀏覽器 環境下Jquery 中的$.ajax 拒絕訪問
阿新 • • 發佈:2021-11-24
需求是相容到 IE8。
$.ajax 總是請求失敗,直接跳轉到 error 函式中,報錯:拒絕訪問。
網上的一些解決方法都試過了還是沒有用,比如再請求之前設定 jQuery.support.cors = true,並呼叫 jquery.xdomainrequest.min.js 。更改 IE 設定,將通過域訪問資料設定為允許。這些方法都試過了,都沒有用。
最後是在 $.ajax 執行之前新增如下程式碼成功的 。
jQuery.support.cors = true; jQuery.ajaxSetup({ xhr: function() { if (window.ActiveXObject) {return new window.ActiveXObject("Microsoft.XMLHTTP"); } else { return new window.XMLHttpRequest(); } } });
以上程式碼,如果只設置了 ajaxSetup ,而沒有設定 cors,就會報錯 No Transport 。
所以兩個都要設定,後臺還需要設定所有域名都可訪問,'Access-Control-Allow-Origin': '*'
二,釋出到伺服器端,ajax報 沒有許可權問題
在使用jquery的ajax進行跨域傳值的時候,程式報錯:
microsoft jscript 執行錯誤:沒有許可權
並指向jquery中的函式。
後來發現是IE瀏覽器的安全性設定問題,解決方法如下:
點選IE瀏覽器的的“工具->Internet 選項->安全->自定義級別”
將“其他”選項中的“通過域訪問資料來源”選中為“啟用”或者“提示”,點選確定就可以了。
function shouquan(customerName,papersCard){ //console.info(1) //debugger; var json = '{"sfSq":"0","dxlb":"1","my":"BYVXZ-6FAKK-NSE47-GYJ8Z-S3UCC","cxJgqc":"","cxTyshxydm":"","cxXm":"'+customerName+'","cxSfzh":"'+papersCard+'"}';var url="http://60.175.226.23:8083/query/queryAuthorization"; $.ajax({ type : 'post', url : url, contentType : 'text/plain;charset=UTF-8', data:json, async:true, success : function (result){ if(result == true){ queryPingFen(customerName,papersCard) }else{ alertMsg.error("授權失敗!"); return; } } }); }
作者:橘子皮很陳
出處:ie8 環境下Jquery 中的$.ajax 拒絕訪問 - chenze - 部落格園 (cnblogs.com)
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。
如果文中有什麼錯誤,歡迎指出。以免更多的人被誤導。