1. 程式人生 > 其它 >ie瀏覽器 環境下Jquery 中的$.ajax 拒絕訪問

ie瀏覽器 環境下Jquery 中的$.ajax 拒絕訪問

需求是相容到 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)
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。
如果文中有什麼錯誤,歡迎指出。以免更多的人被誤導。