我有一个公共云VM,它有公共IP,比如160.159.158.157
(它有一个针对它注册的域(。我有一个Django应用程序(后端(,它启用了CORS,并通过8080端口提供数据。我有一个React应用程序在不同端口(3000(的同一VIM上运行,它正在访问Django应用程序,并应该生成一个报告。
问题是,当我使用http://<domain-name>:8080/api/
或http://<public-ip>:8080/api/
时,我的应用程序运行良好,但是,当我尝试从本地主机(如http://localhost:8080/api/
或http://127.0.0.1:8080/api/
(获取数据时,React应用程序无法获取数据,并出现以下错误:
阻止跨来源请求:同源策略不允许读取位于的远程资源http://127.0.0.1:8080/api/.(原因:CORS请求未成功(。状态代码:(null(。
以下是我尝试过的:
axios.get(baseURL, { headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods':'GET,PUT,POST,DELETE,PATCH,OPTIONS',
}
但没有奏效。我该怎么办?
看起来您已经弄不清这些头应该在哪里了。您在向后端发送的请求中设置了它们,但需要在来自后端的响应中设置它们。毕竟,如果有人提出请求,可以简单地说";是的,我很好,你应该相信我;。
问题将出现在你的后端Django应用程序中,所以请仔细检查那里的CORS配置。