前端跨域的几种处理方式

什么是跨域?

  浏览器想服务器发送请求,因为Ajax只能在同源策略下使用,不能请求不同接口的数据,例如浏览器接口8080请求接口3000的数据,是请求不到数据的会报错,这时就需要跨域来解决跨域就是解决此问题。以下三种方式是我所熟悉的前端跨域请求方式

  从创建文件到访问的步骤
    后台文件接口为 3000,前端接口为 8080

    一、在 cmd 中 输入 cnpm i -S webpack webpack-cli,搭建一个前端的工程

     创建结果如下

    二、在当前文件夹下创建 webpack.config.js默认配置文件,进行配置。

       配置完毕后文件创建如下:(server.js为后端请求接口文件)

      创建一个server.js文件,进行简单后台接口的编写,在cmd中 使用 node server.js 就可以启用后台接口

        启用后台接口 node server.js,在浏览器中输入 http://127.0.0.1:3000/user,显示:

 

         这时我们的后台接口就基本配置完毕。然后在 index.js 中的进行ajax请求,这时会显示报错。

         1、使用 webpack 中代理的方式的来请求后台接口  

            在webpack.config.js配置中写入红框中的代码,

         以 /api 的代理方式来实现跨域请求

         2、后端 cors 处理的方式,在server.js文件中加入以下代码,这种方式是后端处理,最简便的方式,不需要前端做任何处理方式就能请求,只需要在后端添加以下代码就可以,

  

         3、webpack插件处理的方式,也是中间件,在server.js文件中加入以下代码,重新启动 node server.js,在浏览器中启动http://127.0.0.1:3000,会发现同时也请求到了数据

  

 

 

  还有jsonp 的请求方式、vue中的axios的请求方式等等,这么多的跨域方案各有各的好处,没有最好,只有最适合,根据场景选择适合自己的方式;

 

posted @ 2020-02-06 18:17  网名想好了  阅读(1396)  评论(0编辑  收藏  举报