如何编写JS实现点击按钮触发带动态参数的GET请求?
CORS报错解决说明
CORS报错是浏览器同源策略的默认限制,当你的页面部署域名和目标接口https://www.apiserver.com的协议、域名、端口三者不完全一致时,浏览器会自动拦截跨域请求,需要通过以下方案解决:
- 方案一:接口服务端配置CORS响应头(最优方案)
要求apiserver.com的接口维护方在响应头中添加以下配置:
同时针对浏览器自动发送的OPTIONS预检请求,直接返回200状态即可,不需要处理业务逻辑。# 如需限制仅你的页面可调用,把*替换为你页面的完整域名 Access-Control-Allow-Origin: * Access-Control-Allow-Methods: GET, OPTIONS Access-Control-Allow-Headers: Content-Type - 方案二:本地调试临时禁用浏览器安全策略
仅本地开发测试时可以使用该方案,不需要修改服务端配置:
Windows系统启动Chrome命令:chrome.exe --user-data-dir="C://Chrome_dev_test" --disable-web-security
Mac系统启动Chrome命令:open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=/Users/当前用户名/ChromeDevTest
该方案仅适用于开发人员调试,无法作为线上方案给普通用户使用。 - 方案三:配置反向代理转发请求(服务端不可修改时的线上方案)
在你页面所在的同域名服务下配置反向代理规则,将指定路径的请求转发到https://www.apiserver.com。比如将/api/路径下的所有请求转发到目标接口域名,前端请求时将接口地址改为/api/v1/static_param_1/${input_1}/tokens/redeem即可,由服务端转发请求绕过浏览器跨域限制。
你现有代码的请求拼接逻辑本身没有问题,解决跨域问题后即可正常触发请求拿到响应。
内容的提问来源于stack exchange,提问作者john smith
相关产品推荐
相关产品推荐

