【问题标题】:Why does the XMLHTTP Request doesn't work with my server?为什么 XMLHTTP 请求不适用于我的服务器?
【发布时间】:2018-05-16 02:25:22
【问题描述】:

我租了一台服务器,现在有一个网站。但我有一个问题:我想引用我保存在服务器上的文本文件并将内容加载到字符串中。我尝试了以下方法:

<script type="text/javascript">
var filePath = "the link";
xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET",filePath,false);
xmlhttp.send(null);
var fileContent = xmlhttp.responseText;
var fileArray = fileContent.split('\n')
//Now do whatever you need with the array
window.alert(fileArray);
</script>

问题在于:我不工作 :-( 我可以加载其他文本文件(例如,来自 GitHub),但在我的服务器上引用文本文件总是无法工作!这些文件是公开可用的,可以读取和执行。我也尝试通过 Java 获取内容:

import java.net.*;
import java.io.*;

public class URLReader {
    public static void main(String[] args) throws Exception {

        URL oracle = new URL("the link");
        BufferedReader in = new BufferedReader(
        new InputStreamReader(oracle.openStream()));

        String inputLine;
        System.out.println(in.readLine());
        while ((inputLine = in.readLine()) != null)
            System.out.println(inputLine);
        in.close();
    }

}

此代码工作正常(即使对于我的服务器文件)。你能帮助我吗?为什么它不起作用?

【问题讨论】:

  • 高度怀疑这与 Ajax 有什么关系。那么如果你直接在浏览器中调用你的url,会不会有同样的问题呢?
  • 可能是cors 问题?控制台有什么错误吗?
  • 除了 CORS 问题,同步 XHR 已被弃用(请参阅 developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/open)。也许您的浏览器阻止了请求?
  • @epascarello 不,我通过 URL 在浏览器中调用文件没有同样的问题。
  • 好的开始在客户端调试,控制台有错误吗?什么是状态文本?什么是响应? console.log() 是你的朋友。 alert() 被屏蔽了吗?

标签: javascript java html ajax


【解决方案1】:

这很可能是@Alex 已经假设的cors 问题。您可以通过将选项 Header always set Access-Control-Allow-Origin: "*" 添加到服务器上的 .htaccess 来解决此问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-28
    • 2019-10-03
    • 2020-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多