我想建立一个小的库来访问我的REST服务。作为一个实验,我决定创建一个小的JavaScript库来使用。

我在html 5页面内创建了以下Javascript:

<script src="myLibrary.js"></script>
<script>
    myLib.getStuff();
</script>


在myLibrary.js中,我添加了:

var myLib = (function () {

    function getStuff () {

        alert("started getStuff...");

        var getRequest = new XMLHttpRequest();
        getRequest.open('GET', 'http://www.mozilla.org/', false);
        getRequest.send(null);

        if (getRequest.status === 200) {
            alert(request.responseText);
        }

        alert("finished getStuff...");
    }

    return {
        getStuff: getStuff
    };
})();


在Mac的最新版本的FireFox和Chrome中,我收到“ started getStuff ...”警报,然后此后什么也没有。目前尚不清楚为什么请求没有响应。我认为XMLHttpRequest在Chrome和FireFox中受支持。

关于如何使它起作用的任何想法?

最佳答案

您正在尝试发出跨域请求,出于安全原因,浏览器默认会阻止它们。

有几种解决方法。您可以在您的域上使用代理,并将请求传递到远程站点。

或者,如果您还控制远程站点(并且可以处理一些跨浏览器的黑客行为),则可以使用CORS

09-16 08:03