8

次のように、Webサイトの応答を確認するためにajaxリクエストを使用します。

$.ajax ({
    url: 'https://www.example.com',
    cache: false,
    success : function() {
        alert(new Date() - start)               
    }, 
}) 

すべてのブラウザーのローカル PC で動作します。サーバーに置くと、Chrome と Firefox では動作しますが、IE8 では動作しません。

エラーが発生します:"Access is denied" jquery.min.js

このエラーが発生するのはなぜですか?

4

5 に答える 5

6

--- 2014 年 1 月 ---

IE8 と IE9 は、異なるメソッド (XDomainRequest) を使用してクロスドメインと通信します。jQuery を使用している場合は、これを使用することを検討する必要があります。

https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest

発信元の呼び出しと同じプロトコル (HTTP または HTTPS) を使用してください。

于 2014-01-10T02:04:51.413 に答える
6

私の場合、互換モードが原因で問題が発生しました。イントラネットにいて、Internet Explorer が互換モードで実行されています。次のタグを追加すると、これですべての問題が解決しました。IE が互換モードを使用しないように強制します。

<meta http-equiv="X-UA-Compatible" content="IE=Edge" >
于 2013-01-10T08:10:30.493 に答える
2

他の非常によく似た質問から「エパスカレロ」を引用:

サブドメインへの呼び出しは、Same Origin ポリシーにより、別のドメインと見なされます。同一オリジン ポリシーでアクセスが拒否されないように、document.domain を設定していることを確認してください。

document.domain を同期するには、2 つの場所で設定する必要があります。ドメインを設定する script タグを追加し、他のドメインで同じことを設定するページに iframe が必要です。

Ajax 呼び出しが「www.example.com」から行われ、「ajax.example.com」を呼び出しているページ:

<script type="text/javascript">
    document.domain = "example.com";
</script>
<iframe src="http://ajax.example.com/domainCode.html"></iframe>

「domainCode.html」にはスクリプトタグのみが含まれます

<html>
    <head>
        <script type="text/javascript">
            document.domain = "example.com";
        </script>
    </head>
<body>
</body>
</html>

これで、サブドメイン間で通信できるようになります。

それが役立つことを願っています!

于 2013-01-10T06:42:27.690 に答える
0

私はIE8でこの問題を抱えていました。私にとってそれを解決したのは、元のページ要求と同じプロトコルを使用するように ajax 要求を変更することでした。私の場合、元のページは https 経由でリクエストされ、ajax リクエストは http を使用していました。両方を https を使用するように切り替えると、問題が解決しました。

于 2014-04-11T15:09:50.763 に答える