Javascript 如何添加跨源资源共享请求头?
我正在使用React JS构建一个REST消费者,我已经构建了一个REST api作为后端服务,前端将是一个完全不同的应用程序。将前端与后端分离 我目前正在努力解决的是从前端到后端的跨源请求。后端托管在,前端react应用托管在。发出请求时,控制台上出现以下错误: 加载失败:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。因此,不允许访问源“”。如果不透明响应满足您的需要,请将请求的模式设置为“no cors”,以获取禁用cors的资源 现在,我已通过chrome扩展修复了此错误,以允许CORS: 但这只是一个临时解决方案,我尝试添加Javascript 如何添加跨源资源共享请求头?,javascript,reactjs,rest,google-chrome,cors,Javascript,Reactjs,Rest,Google Chrome,Cors,我正在使用React JS构建一个REST消费者,我已经构建了一个REST api作为后端服务,前端将是一个完全不同的应用程序。将前端与后端分离 我目前正在努力解决的是从前端到后端的跨源请求。后端托管在,前端react应用托管在。发出请求时,控制台上出现以下错误: 加载失败:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“访问控制允许来源”标头。因此,不允许访问源“”。如果不透明响应满足您的需要,请将请求的模式设置为“no cors”,以获取禁用cors的资源 现在,我已通过chrom
accesscontrolalloworigin
标题,但似乎不起作用
这是用于发出请求的my代码:
let Myheaders = new Headers()
Myheaders.append("Access-Control-Allow-Origin", "http://localhost:8080/")
let res = await fetch("http://localhost:8080/api/something",
{
method: "get",
mode: "cors",
headers: Myheaders
})
let res1 = await res.json()
我尝试过为带有反斜杠或不带反斜杠的Access Control Allow Origin标头添加多个值,但似乎没有任何效果
有没有人遇到过同样的问题并有解决方案?这是后端问题而不是前端问题
您应该允许来自后端的COR,这取决于后端使用的技术您的JavaScript不能授予自己访问REST API的权限。该权限必须由REST API授予。您试图添加的头属于响应,而不是请求。谢谢,原来这是后端问题。后端是用Kotlin在Springboot中构建的,通过本教程,它在第一次尝试时就成功了:我可以从Postman向后端发出请求,因此,所有的设置都是正确的。@HarryStylesheet-重复问题的公认答案解释了为什么它可以与Postman一起使用,而不是与基于浏览器的JS一起使用。我以前遇到过同样的问题,当请求从浏览器发出时,在其标题中包含域,但在Postman标题中不发送任何域我在后端使用spring boot,我为此,请添加@Bean CorsConfiguration source CorsConfiguration source(){CorsConfiguration configuration configuration=new CorsConfiguration();configuration.setAllowedOrigins(Arrays.asList(“);configuration.setAllowedMethods(Arrays.asList(“GET”,“POST”);……return source;}我的安全配置现在已经修复,我还在后端使用了Springboot和Kotlin。本教程帮助了我:。只需在REST控制器上方的@CrossOrigin(origins=“)注释就可以了,但是如果您想在所有API上都允许CORS,可以通过添加代码来避免将注释添加到所有API中