在javascript中使用xmlhttprequest“CORS问题-403禁止”[重复]

Posted

技术标签:

【中文标题】在javascript中使用xmlhttprequest“CORS问题-403禁止”[重复]【英文标题】:"CORS issue- 403 forbidden" using xmlhttprequest in javascript [duplicate] 【发布时间】:2021-09-20 22:26:03 【问题描述】:

我正在尝试连接托管在云上的 api,但由于 CORS 问题而出现 403-Forbidden。

    var url = "https://spring-demo-ysyfl4f26q-uc.a.run.app/getsummary";

    var xmlhttp = new XMLHttpRequest();

    xmlhttp.onreadystatechange = function() 
    if (this.readyState == 4 && this.status == 200) 
        var myArr = JSON.parse(this.responseText);
        myFunction(myArr);
        
    else
        myFunction('errorcode'+this.status+' error'+this.readyState+this.responseText);
        
    ;
    xmlhttp.open('GET', url);
    xmlhttp.setRequestHeader('Access-Control-Allow-Origin', '*');
    xmlhttp.setRequestHeader('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE, HEAD, OPTIONS');
    xmlhttp.setRequestHeader('key', 'PRODUCT');
    xmlhttp.setRequestHeader('Content-Type', 'application/json');
    xmlhttp.setRequestHeader('Access-Control-Allow-Headers', 'Content-Type, key,Access-Control-Allow-Headers,Access-Control-Allow-Origin, X-Requested-With');
    xmlhttp.withCredentials = false;
    xmlhttp.send();

script.js:75 GET https://spring-demo-ysyfl4f26q-uc.a.run.app/getsummary 403(禁止)

有人可以帮忙吗,我可以通过 POSTMAN 得到回复吗? TIA

【问题讨论】:

您正在请求中设置响应标头Access-Control-Allow-*。不要那样做,删除那些可能会破坏其他功能的 CORS 的标题。如果在删除这些标头后仍然出现 CORS 错误,那么您需要修复服务器 spring-demo-ysyfl4f26q-uc.a.run.app 以根据需要发送 CORS 响应标头 【参考方案1】:

cpanel 中启用 CORS 在您的主机帐户中启用 CORS。 您可以在您的主机帐户的 .htaccess 文件中添加以下行来启用它。

<IfModule mod_headers. ...
Header set Access-Control-Allow-Origin "*"
</IfModule>

​ ​

【讨论】:

以上是关于在javascript中使用xmlhttprequest“CORS问题-403禁止”[重复]的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript初学者的项目

javascript与php使用json进行数据通信

使用带有 URL 的 JavaScript 获取 HTML 代码

跨域 文本

Ajax探讨

什么是Ajax与Ajax原生的实现方式