1

IE を除くすべてのブラウザーで動作する次のコードがあります。 アクセスが拒否されます。助けてください!!!私はたくさんの例を見てきましたが、まだこれを解決できません。URL からテキストを返すだけなので、シンプルに保ちたいと思います。

<script type="text/javascript">
    // Insure the document is loaded...
    $(document).ready(function() {

        // Set the URL for the POS API...
        var PosApiUrl = 'https://test.safety.com/posapi/getposmessage?app=RMIS';


        // Load the POS API Message...
        function loadPOSMessage(edurl) {

            if (window.XMLHttpRequest) {
                xmlhttp = new XMLHttpRequest();
            } else if (window.XDomainRequest) {
                xmlhttp = new XDomainRequest();
            } else {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange = function() {
                if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                    var jsonEdition = xmlhttp.responseText;
                    var objEdition = JSON.parse(jsonEdition);
                    $.each(objEdition, function(key, val) {
                        if (val.length === 0) {
                            $('.posMsgContainer').hide();
                        } else {
                            $('.posMsgContainer').html(val);
                        }


                    });
                }
            };
            xmlhttp.open("GET", edurl, true);
            xmlhttp.send();
        }

        // Make the call to load the POS message...
        loadPOSMessage(PosApiUrl);


    });
  </script>
4

1 に答える 1

0

IE の XDomainRequest の API は XMLHttpRequest の API とは少し異なるため、上記のコードは機能しません。たとえば、onreadystatechange() の代わりに onload() を使用します。

IE 8/9 で CORS をサポートする最も簡単な方法は、 https ://github.com/intuit/xhr-xdr-adapter/blob/master から xhr-xdr-adapter.js ファイルを含めることです 。 /src/xhr-xdr-adapter.js

次のように、必要な場所に含めることができます。

<!--[if lt IE 10]>
<script src="xhr-xdr-adapter.js" type="text/javascript"></script>
<![endif]-->

xhr-xdr-adapter を含めると、標準の XMLHttpRequest API を使用できるようになり、IE 8/9 で実行しているかどうかを気にする必要はありません (カスタム送信のような特別なことをする必要がない限り)。ヘッダーを使用するか、GET または POST 以外の方法を使用してください。)

于 2014-08-18T22:46:13.553 に答える