【问题标题】:Not able to load an XMLHttpRequest无法加载 XMLHttpRequest
【发布时间】:2023-04-10 05:30:01
【问题描述】:

我遇到了这些错误,但我不确定自己做错了什么。

我是使用 Javascript 发出 http 请求的新手,我想知道我在请求中做错了什么。如果有人可以看一下并向我解释,或者指出我已经接受的答案,将不胜感激。

window.addEventListener("load", function(){
    let url = "https://api.guildwars2.com";
    let method = "GET";
    let async = true;
    let getData = "Get Data";
    let request = new XMLHttpRequest();
    request.onreadystatechange = function(){
        let status = request.readyState;
        let data = request.responseText;
        if(status == 4 && status == 200){
            console.log("Connection made");
        }
    }
    request.open(method, url, async);
    request.send();
    console.log(request);
})

由于这个问题已经在别处有非常详细的答案,我将关闭它。

【问题讨论】:

  • @Bálint,所以基本上,我需要进行 AJAX 调用吗?
  • 是的,如果这仍然不起作用,那么将https://crossorigin.me/ 地址放在资源地址之前,这基本上是避免跨域问题的桥梁。所以如果你的数据在http://example.com/myData.file,那么你需要访问https://crossorigin.me/http://example.com/myData.file
  • @Bálint,这似乎有效,除了我在 codepen 而不是服务器上运行它。谢谢

标签: javascript


【解决方案1】:

这是因为 CORS(跨域资源共享),您正在请求与当前域不同的域。

阅读 CORS Request 了解如何使用 CORS 实现此目的。

【讨论】:

    【解决方案2】:

    最后一个显示错误表明您不允许从其他来源(CROSS ORIGIN REQUEST)检索数据,您必须配置您的服务器以允许它。

    我不知道您使用的是什么服务器,所以here 是一个链接,指向如何为许多服务器执行此操作

    【讨论】:

    • 不要回答重复的问题
    • @Bálint 他不知道这是一个 cors 问题,稍微解释一下不会有伤害
    猜你喜欢
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-23
    • 2018-02-02
    相关资源
    最近更新 更多