从自定义模块模式Javascript库调用XMLHttpRequest时不会发生任何事情

Nothing happens when calling XMLHttpRequest from a custom Module Patterned Javascript library

本文关键字:任何事 XMLHttpRequest 模块 自定义 模式 Javascript 调用      更新时间:2023-09-26

我想建立一个小库来访问我的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
    };
})();

在最新版本的FireFox和Chrome Mac中,我收到了"启动getStuff…"警报,之后什么也没有。目前尚不清楚为什么该请求没有得到回应。我认为XMLHttpRequest在Chrome和FireFox中是受支持的。

我有什么想法吗?

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

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

或者,如果你也控制远程网站(并且可以处理一些跨浏览器的技巧),你可以使用CORS。