1

我已经下载了 Request 和 Request.HTML 的示例,但都无法正常工作。我将它们解压缩到一个文件夹并浏览到它们的 index.html 以按原样执行它们,但响应始终是“请求失败”。不知道为什么。

我用不同的排列与他们一起玩,可以让请求完成,但它总是失败。有什么方法可以找到失败的原因吗?我尝试了三种不同的浏览器关闭了我的防火墙,使用了相对和绝对文件引用,但没有任何效果。我错过了一些非常明显的东西吗?我会发布代码,但它是完全一样的例子......

任何帮助都是极好的。

干杯,

贾斯汀。

4

4 回答 4

1

大多数任何网络服务器都应该工作。只是您的文件系统没有像 Web 服务器那样“响应”浏览器请求:

在本地(针对文件系统)执行的 ajax 请求无法正常工作,因为 ajax 逻辑正在寻找状态更改和服务器响应,而您的文件系统都没有提供这两者

-- http://forum.mootools.net/viewtopic.php?id=5009

XMLHttpRequest 对象可以处理的不仅仅是 HTTP 请求,但至少在 mootools 中,它并不意味着。并且“file:///...”不是 HTTP 请求。它只是从您的文件系统中获取一个文件并将其显示在浏览器中。

所以好消息是:任何网络浏览器,包括在本地机器上运行的最基本的浏览器,都应该可以正常工作:)

于 2009-03-26T15:05:14.510 回答
1

如果我没记错的话,大多数浏览器中的 AJAX 请求不能通过本地文件系统完成——你需要一个像 Apache 这样的实际 Web 服务器。在 Windows 中,XAMPP将让您在几分钟内启动并运行 Apache。

于 2008-12-27T00:46:56.103 回答
0

The XMLHttpRequest() succeeds cause there's nothing wrong with making the local call. it's just different and the problem is in the buggy mootools isSuccess function. You gotta override it the Request options. Here's how jquery does it

    // Determines if an XMLHttpRequest was successful or not
httpSuccess: function( xhr ) {
    try {
        // IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450
        return !xhr.status && location.protocol === "file:" ||
            // Opera returns 0 when status is 304
            ( xhr.status >= 200 && xhr.status < 300 ) ||
            xhr.status === 304 || xhr.status === 1223 || xhr.status === 0;
    } catch(e) {}

    return false;
},
于 2010-05-11T10:44:00.010 回答
0

杰出的!!非常感谢!我将它上传到我最近的网络服务器,果然它可以工作。

我确实尝试过直接从我的文件系统进行一些 Ajax 调用,而不使用任何 javascript 库 - 使用 XMLHttpRequest() - 它工作得很好,所以这看起来确实是一个奇怪的限制。我可以确定这将始终在任何网络服务器上工作,无论多么基本?只是我正在处理的这个项目将使用多个托管环境,主要是纯 HTML 类型的站点,用于客户端环境,我无法控制......是否有最低规范?

干杯;)

于 2008-12-27T01:16:08.540 回答