15234496108 发表于 2023-8-28 15:24:46

ThingJS-X如何解决跨域问题

一、什么是跨域
同源策略是浏览器一个重要的安全策略,所谓的同源就是指两个域有相同的协议(protocol)、域名(host)、端口(port),这三者之间任何一个不同都会构成跨域的情况,比如说前后端分离之后,前后都在两个域之下,前端的浏览器请求后端服务器的数据的时候就需要做跨域处理。
https://pan.uinosoft.cn/files/image/2022/4/6aababdf8dc2365101fe1a43ec6a7a96.png?image_process=quality,Q_80&image_process=resize,p_70
非同源的限制

[*]无法读取非同源网页的 Cooike、LocalStorage、IndexedDB
[*]无法接触非同源网页的DOM
[*]无法向非同源地址发送AJAX请求

二、什么情况下需要解决跨域
比如在ThingJS-X中,在【业务配置】-【图表编辑】下,编辑图表时,如下图所示:
data:image/png;base64,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***3k7jDHIqmNYWm8541icu8UgGeAAP4AE8ELMHrLN164C5sNgR/+iBzSbQrFUzq5CZX0s5YLi8CTL1ek4PmRrPT0Cigmltp3TixdwJsG8kKTyAB/AAHrD2gHUGbw0wr7jyVbKRx2+8+jXyJ3+yMx9SLycHuWpmn0qmg9GG6zH9L/l4yAQwrW2UXjzrE5d4JAM8gAfwAB6I2QPWmTxawFQ4VchUoCyGzPOh8coM89otjKqQmQ2VA5jWtkk/XsydAPtGksIDeAAP4AFrD1hn9qgBUyFTr5ecBDLDoXIPmLp012HmM9kXdfh+vcNPcgAAIABJREFUYUGaZpG//PLL1loTb4oUsD5xiUcywAN4AA/ggZg9YJ2i4wdMhcEAMqvXZFZnl/sh8HoVE8C0tk368WLuBNg3khQewAN4AA9Ye8A6s08BYJaTcoqh8mCSj4dJrXKGv/aj7/sqZhNg6ntUMK3tlE486xOXeCQDPIAH8AAeiNkD1hk8esAsb2dUGyrvC5n5dZf5RCCFzhAww+eLHR0iX2SI3NpVCcSLuRNg30hSeAAP4AE8YO0B69QdPWC6e1bWJvoUlUw/6WfArHKtYrqZ5+5nKhVSyweAaW2ndOJZn7jEIxngATyAB/BAzB6wzuDxA6bCZeUXgHwlM7/+sgEyw2sxAUxry8xGvJg7AfaNJIUH8AAewAPWHrDO7tEDph8i90u9h2XjrPKgilm/FrNewdTfItdKpi6zIfIFmZubE/0VH/9LPjqLnJnk1nabnnjWJy7xSAZ4AA/gATwQswesM3T0gKm/ApTBZfjzkiVkVmaVVyCzei1mCJkVwFzUazABTGtjTXu8mDsB9o0khQfwAB7AA9YesM7bUwSY4VB5duuiQddi+iqmAqivevrrL8cBTKqY1pabjnjWJy7xSAZ4AA/gATwQswess3P0gKnVy8FVzPBazOb7YjYBpkKmPvT3yOcXtII53zhEDmBaW2464sXcCbBvJCk8gAfwAB6w9oB1dp4KwFTILK7BLCb8lMPkJUAuSfW+mNkwuftch8/zGeQeLgFMazulE8/6xCUeyQAP4AE8gAdi9oB1Bo8eMH310i8VFgvYdD/5mA+BO4CsA+YB99OQJWBmkFkHTP25SCqY1taa7ngxdwLsG0kKD+ABPIAHrD1gnbVbBsyb5LZ7l+W+T3flrVe+SvS3xcd9eLAcVsUsJ/uUw+TFdZj5b4/7iT6NgDmvQ+TZTPK9e/e6GeTMJLe22/TEsz5xiUcywAN4AA/ggZg9YJ2hWwXMHV+64Pb3wv1/OjZYehBdCK7B9LCpFclwgk/43EFkbTa5uyVRfnsjf3siPzyu12C6CiaAae2tqY4XcyfAvpGk8AAewAN4wNoD1km7RcD8uJx+QUReWJXbrh5cuVw8dUnk6QdlR0OFU6HSg6Vf9h0m73PT9QIw8+swfQVT4RLAtLZUGvGsT1zikQzwAB7AA3ggZg9YZ+/WAHPH8fNuX9e+ctPQ6uVwwCxnkitkuoplz2SfhtnkXZ3kk/0WeXgdZhNgzmsFM7/ZOkPk1jabvngxdwLsG0kKD+ABPIAHrD1gnalbA8yTl0Rk/YwcGVK91KHwux4XkUunZLFfBXPEYfLyOsxyso8HzKKK6X56srxFka9gApjW1prueNYnLvFIBngAD+ABPBCzB6yzdmuAqTs6SvXyiiv3yc***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***mRer8GsVykDwGSIvMXJPuEEH32+FZN8nB0qlb1egOsBrbEAU+OFEJc/L6qjAYRVjO3hMIOwo8sNE4KuDW75MyZgltdBKnwecg+9rVIGvNmtmerHrTCo11tmgJnp5IfIS+j0Vdp8v/3tmYrh9Qyaw8ppuM2KBA0vhgJmPkQeTvCpAGZl8k9wDWYPmI74mRsir17z2VQNbTgU3kIBFEABFJgSBXpvVeSHv3sPIAPHYFi8dxV366NBFVD/laE5z684xpIK5iZVMF2bhIDprpPMIFCrhgpVZfUwb8GxAFOyyqi/flOHq/PqXbFtX+WrGMQDZgZybsZ5AaX5isWwtIe58DthJTPYbxcjj+k40gNhtjyR359Tv1EBzKCyqUCo12OWk3t8VdLDY+VAKi/GgcnKF/MXw0+2DAyLWwUFQ+SVST0arwKVAVCO9Vk+i7yojOos8ipwNh0H76EACqAACkyrAk0VTD+h5+vyN3fqLYv6A6YbPg/vlzlAhuE5b8CX+3wEYG4VYPoGqQyX18BJAbOoyDVUJ91ng7+j0JqBWjbcXZlR7vYhh0XdDz9Bp2GbGfwq4IVAmX33qA4/F2Cbz96uQ6q/PlO3WQPnCmDmuoT77N7KdXKwmetS7lM/bRre79mvfIO1xWgnW3g/y+B6TI3lgNPfs7I2OWfSz/KZ5P6+m8X1n7V95yUKoAAKoMD0KVBeTxlegxkMiTceUi9g+jjlrYwav1h5c7ScV/nK0BcA5iYBZnYNYFal9JU5N1u6AjxZha6oZNZArLc1fSVRP9HnClRV4HTbCuEvH552E4083O5ekaKiqNus7FNWGXX75CfNFDsSbj+voOZwWhxDsV/ltaV+CNyHqQBmBR6zNZx2tWPQT+pxfDxd6nGX+xB+MtrzNk620bbMWiiAAiiAAiiQKeBhsf4LPyU8esDUZQam5Wejq9hGzgMwNwkwR29m1oxBgTZOthiOi31AARRAARRAgboCbeQ8ABPArPuM1yLSxsmGsCiAAiiAAigQowJt5DwAE8CM0etbvk9tnGxbflDsAAqgAAqgAAo0KNBGzgMwAcwGq/HWU089JZcvX0YIFEABFEABFEhaAc11mvOs/wBMANPaU0nEW1tbk+effz6JY+EgUAAFUAAFUKCfAprrNOdZ/wGYAKa1p5KI99JLL7n/0emJRyUziSblIFAABVAABQIFNLdpjtPqpeY86z8AE8C09lQy8fSE0//V6cmn16fwQAM8gAfwAB5IxQOa2zTHtQGXCgIAJoCZDBByICiAAiiAAiiAAnEoAGACmHE4kb1AARRAARRAARRIRgEAE8BMxswcCAqgAAqgAAqgQBwKAJgAZhxOZC9QAAVQAAVQAAWSUQDABDCTMTMHggIogAIogAIoEIcCACaAGYcT2QsUQAEUQAEUQIFkFAAwAcxkzMyBoAAKoAAKoAAKxKEAgAlgxuFE9gIFUAAFUAAFUCAZBQBMADMZM3MgKIACKIACKIACcSgAYAKYcTiRvUABFEABFEABFEhGAQATwEzGzBwICqAACqAACqBAHAoAmABmHE5kL1AABVAABVAABZJRAMAEMJMxMweCAiiAAiiAAigQhwIAJoAZhxPZCxRAARRAARRAgWQUADABzGTMzIGgAAqgAAqgAArEoQCACWDG4UT2AgVQAAVQAAVQIBkF2gLM/x9j/VJSgxwHwgAAAABJRU5ErkJggg==
在下面填写接口地址的时候,如果配置的是第三方的接口地址,此时若不处理跨域请求,就可能报如下错误,这种情况下就需要解决跨域问题。
https://p1.mingdaoyun.cn/RiceText/2ffb68fd-1bd4-40c7-8268-e9b545933912/6130467cb410b9fd6f8e509c/20230529/5e781t1V581u3r6Y6G9YdbbQ878t1T0Aai3xeO9cbD1C47174b6ieta34x399g4X.png?e=1685331024&token=PGtAPYyCYxCQ1zckbL-ecATOk42z8P3jdPahEnzt:ufOq-oAR5SCRqL-8Tykh9ZbvTIQ=
三、如何解决跨域
1、接口提供方自行解决(例如java后台)
   (1)使用Filter过滤器解决
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletResponse;

@WebFilter(filterName= "CorsFilter", urlPatterns="*.do")
public class CorsFilter implements Filter{
    @Override
    public void destroy() {
    }

    @Override
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException {
      HttpServletResponse response = (HttpServletResponse) resp;
      //解决跨域访问报错
      response.setHeader("Access-Control-Allow-Origin", "*");
      chain.doFilter(req, resp);   
    }
    @Override
    public void init(FilterConfig arg0) throws ServletException {
    }
}

[*] 注意:
[*]@WebFilter需要在启动类上添加上@ServletComponentScan注解才能被扫描到。
[*]response.setHeader("Access-Control-Allow-Origin", "*")中,*代表允许所有域发过来请求,如果想加以限制,可以配置具体到某个域名。
   (2)解决跨域问题springboot所需配置
使用注解的形式配置org.springframework.web.filter.CorsFilter,通常springboot项目多数使用这种方式。
import org.springframework.web.filter.CorsFilter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;

/**
* 解决跨域问题springboot所需配置
*/
@Configuration
public class CORSConfiguration {

    @Bean
    public CorsFilter corsFilter() {
      //1.添加CORS配置信息
      CorsConfiguration config = new CorsConfiguration();
      //1) 允许的域,不要写*,否则cookie就无法使用了
      config.addAllowedOrigin("*");
      config.addAllowedHeader("*");
      // 允许任何头
      config.addAllowedMethod("*");
      // 允许任何方法(post、get等)
      //2) 是否发送Cookie信息
      config.setAllowCredentials(true);
      //3) 允许的请求方式
      config.addAllowedMethod("OPTIONS");
      config.addAllowedMethod("HEAD");
      config.addAllowedMethod("GET");
      config.addAllowedMethod("PUT");
      config.addAllowedMethod("POST");
      config.addAllowedMethod("DELETE");
      config.addAllowedMethod("PATCH");
         
      // 4)允许的头信息
      config.addAllowedHeader("*");
         
      // 5)配置有效时长
      config.setMaxAge(3600*24L);
         
      //2.添加映射路径,我们拦截一切请求
      UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
      configSource.registerCorsConfiguration("/**", config);
      //3.返回新的CorsFilter.
      return new CorsFilter(configSource);
    }
}2、通过配置nginx解决跨域问题
有时候在浏览器访问应用程序时,中间会有nginx作为代理转发浏览器的请求,此时我们就需要在nginx端解决跨域访问的问题。只需要在Nginx的配置文件中配置以下参数:location /thing {
      if ($request_method = 'OPTIONS') {
            add_header Access-Control-Allow-Origin * always;
            add_header Access-Control-Allow-Methods 'GET,POST,PUT,DELETE,OPTIONS';
            add_header Access-Control-Allow-Headers 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
            return 200;
      }
      add_header Access-Control-Allow-Origin '*' always;
      add_header Access-Control-Allow-Methods 'GET, PUT, POST, DELETE, OPTIONS';
      add_header Access-Control-Allow-Headers 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range';
      proxy_passhttp://ip:port/thing;
}解释:1. Access-Control-Allow-Origin服务器默认是不被允许跨域的。给Nginx服务器配置`Access-Control-Allow-Origin *`后,表示服务器可以接受所有的请求源(Origin),即接受所有跨域的请求。2. Access-Control-Allow-Headers 是为了防止出现以下错误:Request header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight response.这个错误表示当前请求Content-Type的值不被支持。其实是我们发起了"application/json"的类型请求导致的。3. Access-Control-Allow-Methods 是为了防止出现以下错误:Content-Type is not allowed by Access-Control-Allow-Headers in preflight response.4.给OPTIONS添加200的返回,是为了处理在发送POST请求时Nginx依然拒绝访问的错误发送"预检请求"时,需要用到方法 OPTIONS ,所以服务器需要允许该方法。

页: [1]
查看完整版本: ThingJS-X如何解决跨域问题