0

この質問は以前にこのフォーラムで尋ねられたものではないと思います。たくさん検索してみましたが、一致するものも、うまくいったものもありませんでした。以下は、コードの JSFiddle リンクです。

JSFiddle

IE8 と IE9 ではすべて正常に機能しますが、他のブラウザーでは機能しません。入手したChromeで問題を探してみました

XMLHttpRequest cannot load http://v3.actisku.com/GetUserPostData?pid=Test-37&surv=1170. Request header field X-Requested-With is not allowed by Access-Control-Allow-Headers

必要な解決策、つまりCORSを探してみましたが、解決策がわかりませんでした。私は並んで同じものを探しています。

編集:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<html><head>

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp = new XMLHttpRequest();
            }
            var contents = $.ajax({
                url: 'http://v3.actisku.com/GetUserPostData?pid=Test-37',
                cache: false,
                crossDomain: true,
                dataType: 'html',
                data: { surv: '1170'},
                async: false
            }).responseText;

            var test = contents;
            alert(test);
            test = test.replace(/\t/g, ';');
            alert(test);
            test = test.replace(/\n/g, 'break');
            alert(test);
            $('#contentArea').attr('value', test);
        });
    </script>
</head>

<body>
<textarea id="contentArea" rows="10" cols="50"></textarea>
</body>
</html>​

サーバーが IE 自体からリクエストを取得しているように感じるように、ヘッダーを手動で追加できますか。

よろしく、icr

4

2 に答える 2

2

そこにあるようにわかりました...「リクエストヘッダーフィールドX-Requested-WithはAccess-Control-Allow-Headersによって許可されていません」すべてのAJAX / XHRリクエストはサーバーによってブロックされます。サーバー構成についてサーバー管理者に問い合わせてみてください

IEは別の方法を使用してajaxリクエストを送信します(ブロックされませんでした)。これは、サーバーがヘッダーに渡されるときにそれらを異なる方法で読み取るActiveXObject("Msxml2.XMLHTTP")か、使用している可能性があるためです。ActiveXObject("Microsoft.XMLHTTP")

于 2012-09-18T09:13:41.427 に答える
0

コードには、ブラウザの非互換性を作成するものは何もありません。実際、それらは Firefox と chrome で問題なく動作します。ただし、これは不要のようです。

if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp = new XMLHttpRequest();
}

Mahan が述べたように、これはサーバー構成の問題のようです。

于 2012-09-18T09:17:47.720 に答える