zoukankan      html  css  js  c++  java
  • 用代理解决跨域问题

    • 创建时间: 20211105-5_155626
    • 更新时间: 20211105-5_155626
    • 版权作者: koalamini
    • 当前版本: v1_beta
    • 标签分类: #编程开发 #web #跨域 #代理 #proxy

    用代理解决跨域问题

    跨域问题同源安全策略 默认阻止“跨域”获取资源。

    跨域:不同IP/不同端口
    本机地址:192.168.10.1:8080
    目标地址1:192.168.10.2:8080(IP不同)
    目标地址2:192.168.10.1:9090(端口不同)

    代理(proxy):将目标地址伪装为本机地址

    Quasar的代理配置如下

    '/test1': { // 代理路径
    	target: 'http://192.168.10.2:8080', // 代理目标
    	changeOrigin: true, // 是否代理?
    	pathRewrite: { '^/test1': '' } // 去除代理路径
     }
    

    意思是将http://192.168.10.2:8080伪装为本机的/test1,假设代理请求为/test1/getData,实际请求的是http://192.168.10.2:8080/getData

    fetch('/test1/getData', requestOptions)
    	.then(response => response.text())
    	.then(result => {
    		console.log(result)
    	})
    

    pathRewrite是改写路径,假设我们要访问目标地址2,那么Quasar的配置可以写为:

    '/test2': { // 代理路径
    	target: 'http://192.168.10.1:9090', // 代理目标
    	changeOrigin: true, // 是否代理?
    	pathRewrite: { '^/test2': '/test2/api' } // 修改路径
     }
    

    那么,实际请求的地址为http://192.168.10.1:9090/test2/api,fetch请求为:

    fetch('/test2/getData', requestOptions)
    	.then(response => response.text())
    	.then(result => {
    		console.log(result)
    	})
    

    实际的请求地址为http://192.168.10.1:9090/test2/api/getData

  • 相关阅读:
    scnner02 (nextLine)
    Scanner01
    Spring 框架 (初学)
    查询自己写了多少行代码
    jdbc事务
    jdbc(预编译插入数据)
    jdbc(java连接数据库)
    监听器扩展
    listener(监听器)
    Filter过滤器
  • 原文地址:https://www.cnblogs.com/koalamini/p/15514060.html
Copyright © 2011-2022 走看看