这是我的网关配置。
spring:
cloud:
gateway:
default-filters:
- DedupeResponseHeader=Access-Control-Allow-Credentials Access-Control-Allow-Origin, RETAIN_FIRST
globalcors:
corsConfigurations:
'[/**]':
allowedOrigins: '*'
allowed-methods:
- GET
- POST
- PUT
- PATCH
- DELETE
allowed-headers: "*"
routes:
# Authorization server route
- id: authorization_server
predicates:
- Path=/oauth/**
uri: http://127.0.0.1:12001
metadata:
response-timeout: 10000
connect-timeout: 10000
一切正常!但是当在密码中添加“{”时,会出现 cors 错误。 以下错误来自前端-
我已经尝试为 '}' -> %7D 或 '{' -> %7B 添加编码值,效果很好。但我认为,这不是一个好的解决方案,因为我必须处理所有特殊角色。请帮我找到解决这个问题的方法。
通常建议对不属于非保留集的所有字符(字母数字、“-”、“.”、“_”、“~”)进行百分比编码,以避免一些与 http 相关的问题,例如 CORS。
我还看到您在 url 参数中发送用户凭据(用户名、密码),这是一种不好的做法,因此我假设您正在使用 GET http 方法,对于如此重要的数据,我建议使用 POST http 方法并在请求正文中发送数据。