解决:The ‘Access-Control-Allow-Origin‘ header contains multiple values‘x, *‘, but only one is allowed.

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

跨域问题报错:

Access to XMLHttpRequest at 'http://xx.xx.xx.xx/getUser' from origin 
'http://ergouzi.fun' has been blocked by CORS policy: 
The 'Access-Control-Allow-Origin' header contains multiple values 
'http://ergouzi.fun, *, http://ergouzi.fun', but only one is allowed.

1. 为了解决跨域问题,我在服务端代码中加了个过滤器:

package gentle.filter;import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;/*** 解决跨域设置* (可把此设置放在 nginx 中,但只能设置一处)** @author silence* @date 2018/12/11 15:19*/@WebFilter(filterName = "requestFilter", urlPatterns = {"/*"})
public class RequestFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {HttpServletResponse response = (HttpServletResponse) servletResponse;HttpServletRequest request = (HttpServletRequest) servletRequest;// 此处 setHeader、addHeader 方法都可用。但 addHeader时写多个会报错:“...,but only one is allowed”// response.setHeader("Access-Control-Allow-Origin", "*");response.addHeader("Access-Control-Allow-Origin", request.getHeader("origin"));// 解决预请求(发送2次请求),此问题也可在 nginx 中作相似设置解决。response.setHeader("Access-Control-Allow-Headers", "x-requested-with,Cache-Control,Pragma,Content-Type,Token, Content-Type");response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");response.setHeader("Access-Control-Max-Age", "3600");response.setHeader("Access-Control-Allow-Credentials", "true");String method = request.getMethod();if (method.equalsIgnoreCase("OPTIONS")) {servletResponse.getOutputStream().write("Success".getBytes("utf-8"));} else {filterChain.doFilter(servletRequest, servletResponse);}}@Overridepublic void destroy() {}}

2. 同时在 nginx 中也作了相关配置:

add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';
add_header 'Access-Control-Allow-Headers' 'Content-Type';
...

3. 运行报错如题。

4. 解决:此错表示设置重复,只允许设置一种,去除多余设置,保留一种即可。选择第1点中方法,或者第2点中方法都可以。

 

----------------------------------------------------------------------------

 

跨域相关知识点解说: https://blog.csdn.net/jiangyu1013/article/details/84315748

PS 跨域问题解决也见文章 :解决跨域问题:No 'Access-Control-Allow-Origin' header is present on the requested resource.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/447767.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

科目三道路考试技巧流程详解

科目三是公认最难的考试科目,它不像科目二练习是在驾校训练场,有些技术不错的学员也会卡在这个项目上,由于突发状况多,了解考试流程是必不可少的。考试流程:1、上车前的准备工作2、上车起步3、变更车道4、直线行驶5、学…

springbootajaxhas been blocked by CORS policy: No ‘Access-Control-Allow-Origin

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 ajaxspringboot解决跨域问题,以下报的错误就是html跨域的问题 Access to XMLHttpRequest at http://localhost:8080/user/l…

起步前要做哪些准备?

开车前,做好起步的准备工作是必不可少的,有的人可能还不知道开车前要做那些起步工作。一、开车起步前,检查工作不能忘1、检查车子轮胎是否完好,若发现轮胎有损毁,及时更换。2、检查地面是否有会造成伤害的事或物&#…

什么是响应式布局设计

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 看一个例子:Mashable 的首页: 浏览器窗口最大化时: 缩小浏览器窗口: 再缩小&#x…

科目三电子路考细节部分

科目三考试是电子监控,相对之前的考官监考更为严格,没有了考官的提醒,我们更要注意什么?其实电子路考考的就是一种意识,一种安全意识。这也就是为什么在考试之前教练反复强调的不是技巧,而是打转向灯按喇叭…

PHP 与 JSP 比较(PHP、ASP、JSP是什么)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 PHP PHP(Hypertext Preprocessor)是一种嵌入HTML页面中的脚本语言。它大量地借用C和Perl语言的语法,…

FreeSql (十四)批量更新数据

FreeSql支持丰富的更新数据方法,支持单条或批量更新,在特定的数据库执行还可以返回更新后的记录值。 var connstr "Data Source127.0.0.1;Port3306;User IDroot;Passwordroot;" "Initial Catalogcccddd;Charsetutf8;SslModenone;Max po…

FreeSql (十五)查询数据

FreeSql在查询数据下足了功能,链式查询语法、多表查询、表达式函数支持得非常到位。 IFreeSql fsql new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.MySql, "Data Source127.0.0.1;Port3306;User IDroot;Passwordroot;Initial Catalogcc…

路考变更车道该注意什么?

路考变更车道该注意什么?路考变更车道具体操作方法?路考变更车道注意事项?变更车道技巧?学车啦小编来指导让你更好的来了解路考变更车道: 操作方法 1、观察与判断观察车辆后方、侧方和准备变更的车道上的交通流情况; 2…

Apache RocketMQ:简单消息示例

通过三种方式来发送RocketMQ消息使用: 可靠的同步发送, 可靠的异步发送和单向传输。 这个页面举例说明了这三种消息发送方式. 根据示例找出最适合你的特定用例。 可靠的同步传输 应用:可靠的同步传输广泛应用于重要通知消息,短信通知,短信…

FreeSql (十六)分页查询

IFreeSql fsql new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.MySql, "Data Source127.0.0.1;Port3306;User IDroot;Passwordroot;Initial Catalogcccddd;Charsetutf8;SslModenone;Max pool size10").UseAutoSyncStructure(true) //自动同步实…

电脑考官三点技巧

路考智能考试系统,考生直接从电脑语音获得指令进行考试,系统会根据考试车的实际位置自动并进行评判,考官不再坐在副驾驶座。诀窍一:夜间道路行驶,不同情况打不同灯,一定要非常熟悉。灯光过不了关&#xff0…

git 提交 不用输入用户名、密码的方法(GIT免密提交)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 我以前设置过,但最近把项目换地方了,环境也改了些配置,发现不能免密 push 了。 设置方法如下&#…

FreeSql (十七)联表查询

FreeSql在查询数据下足了功能,链式查询语法、多表查询、表达式函数支持得非常到位。 IFreeSql fsql new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.MySql, "Data Source127.0.0.1;Port3306;User IDroot;Passwordroot;Initial Catalogcc…

科目三路考经验分享

科目三路考,对于一个新手,如果没有很好的心理素质,就可能会慌张的无法通过科目三路考考试。其次就是起步要领,上车后调整好座位,系好保险带。把挡位放在空挡,点火,打开左方向灯,切换…

vue 实现瀑布流布局的 组件/插件总汇:vue-waterfall、vue-waterfall-easy、vue-virtual-collection、vue-grid-layout

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 瀑布流作为当前比较流行的一种网页布局方式,在视觉上呈现出参差不齐、琳琅满目、唯美的视觉效果,该布局随着页面…

FreeSql (十八)导航属性

导航属性是 FreeSql 的特色功能之一,可通过约定配置、或自定义配置对象间的关系。 导航属性有 OneToMany, ManyToOne, ManyToMany, OneToOne, Parent 五种配置关系。 有了导航属性,多表查询会非常方便,lambda 表达式中直接使用导航对象点点点…

做什么运动可以排毒养颜

排毒养颜吃什么很重要,现在的社会污染这么严重,人体都置身于有毒的环境中,除了吃的排毒方法,还需要了解做什么运动可以排毒养颜。下面就来介绍几个简单的动作来排毒养颜。 方法/步骤 赤脚走路可以增强体质,足底有许多和…

FreeSql (十九)多表查询

多表查询,常用的有联表 LeftJoin/InnerJoin/RightJoin ,这三个方法在上篇文章已经介绍过。 除了联表,还有子查询 Where Exists,和 Select 子表: IFreeSql fsql new FreeSql.FreeSqlBuilder().UseConnectionString(Fre…

docker启动,重启,关闭命令

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 --------------------- 转自:https://blog.csdn.net/easternunbeaten/article/details/80463837