经常使用vue + webpack搭建项目,但在请求某些json数据时存在跨域问题,此时有几种修改方法

1. 修改后台header, 但如果只是请求外部数据,是没法修改后台配置的

1 header('Access-Control-Allow-Origin:*');//允许所有来源访问
2 header('Access-Control-Allow-Method:POST,GET');//允许访问的方式

2. 修改webpack配置 , 这是使用webpack选项devServer的代理功能 proxy

1 proxyTable: {
2   '/api': {
3     target: '填写请求源地址', //源地址
4     changeOrigin: true, //是否跨域
5     pathRewrite: {
6       '^/api': '' //路径重写
7       }
8   }
9 }

注意:如果不设置pathRewrite则可能会出现以上报错

另外:proxyTable是在vue-cli2.0项目中config/index.js配置好的选项, 实际上它指向build/webpack.dev.config.js中的devServer.proxy

在新版的@vue/cli中(即vue-cli3.0)没有直接暴露出webpack的配置,只需在根目录下自行创建vue.config.js然后配置如下

 1 module.exports = {
 2     devServer: {
 3     proxy: {
 4         '/api': {
 5         target: '填写请求源地址',
 6         ws: true,
 7         changeOrigin: true,
 8                 pathRewrite: {
 9                    '^/api': ''
10                 }
11         }
12     }
13      }
14 }        

最后一般在组件中使用axios或者fetch请求本地服务即可,此时外部数据已经被转到了本地服务器中

1 axios.get('/api/xxx')
2   .then(res => {
3       console.log(res)
4   })
5   .catch(err => {
6       console.log(err)
7 })

 1 fetch('/api/xxx', {
 2   method: 'GET',
 3   headers: {
 4       'content-type': 'application/json'
 5   },
 6   mode: 'no-cors'
 7   })
 8   .then(res => res.json())
 9   .then(json => {
10       console.log(json)
11    })

3.使用jQuery的JSONP()

1 $.ajax({
2   url: '请求的源地址',
3   type: 'GET',
4   dataType: 'JSONP',
5   success(res) {
6      console.log(res)
7    }
8 })

转载于:https://www.cnblogs.com/hughes5135/p/10183445.html

Vue项目中跨域的几种方式相关推荐

  1. vue项目中跨域解决方案

    在项目根目录下新建vue.config.js文件,里面内容如下 module.exports={devServer: {proxy:{'/api':{target:'http://localhost: ...

  2. vue项目中跨域问题的解决

    1.当跨域无法请求的时候我们可以修改工程下config文件夹下的index.js中的dev:{}部分.代码如下:主要修改的是 proxyTable:{}内部的内容 dev: {env: require ...

  3. vue解决线上跨域的问题_Vue项目中跨域问题解决方案

    方法 后台更改header 使用http-proxy-middleware 代理解决(项目使用vue-cli脚手架搭建) Jquery jsonp 后台更改header header('Access- ...

  4. springboot项目解决跨域的几种方式

    跨域资源共享(CORS):通过修改Http协议header的方式,实现跨域.说的简单点就是,通过设置HTTP的响应头信息,告知浏览器哪些情况在不符合同源策略的条件下也可以跨域访问,浏览器通过解析Htt ...

  5. vue项目刷新当前页面的三种方法

    本文介绍了vue项目刷新当前页面的三种方法,本文图文并茂给大家介绍的非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下. 想必大家在刨坑vue的时候也遇到过下面情形:比如在删除或者增加一条记录的时 ...

  6. 只有ajax会跨域吗_ajax处理跨域有几种方式

    jQuery 使用 JSONP 缺点: 1.这种方式无法发送post请求(这里) 2.另外要确定jsonp的请求是否失败并不容易,大多数框架的实现都是结合超时时间来判定. 跨域的几种方式 在项目中可能 ...

  7. [译]使用Webpack提高Vue.js应用程序的4种方式

    [译]使用Webpack提高Vue.js应用程序的4种方式 原文地址 ​ Webpack是开发Vue.js单页应用程序的重要工具.通过管理复杂的构建步骤,您可以更轻松地开发工作流程,并优化应用程序的大 ...

  8. 详解vue路由传参的三种方式

    在我们开发vue项目的时候,路由传参几乎是我们必须要用到的,一般出现场景是,当我们点击某个组件的某个按钮时跳转到另一个组件中,并携带参数,便于第二个组件获取数据.下面我就来说说vue路由传参的三种方式 ...

  9. 什么是同源策略及解决跨域的三种方式

    同源策略 1.1.1 所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个 ip 地址,也非同源.同源策略/SOP(Same origin policy)是一种约 ...

最新文章

  1. Delphi xe7 FireMonkey / Mobile (Android, iOS)生成 QR Code完整实例
  2. Java NIO使用及原理分析(二)
  3. SAP UI5 Web Component React应用如何在Component之间跳转
  4. Makefile 打印变量的值
  5. 讲述下 :LVM逻辑卷管理遇到的问题
  6. nginx之lua_shared_dict
  7. clienttop,clientleft,scrolltop,scrollleft,offsettop,offsetleft全解析
  8. bzoj1036 count 树链剖分或LCT
  9. ES-Checker
  10. CMPSS 涡扇发动机模型
  11. win10计算机升级系统,win10系统升级更新方法
  12. new115.com dz.html,超实用的HTML代码段(赵荣娇)
  13. 遥感影像地图编制流程
  14. CentOS 7:设置静态/动态ip地址
  15. Basler驱动如何彩色相机白平衡说明
  16. shiro:principal为空问题
  17. 【字体】写代码编程字体展示推荐
  18. 采埃孚ZF EDI DESADV需求实现
  19. 计算机专业老师新学期工作计划,计算机教师工作计划
  20. 大数据培训之旅——Java-9(设计模式、Java Web)

热门文章

  1. ZZNU 1993: cots' friends
  2. 哈希表(HashMap)分析及实现(JAVA)
  3. 《JAVA练习题目2》 输入十个学生的考试成绩,将及格学生的成绩从高到低排序输出。
  4. 七天学习计划_c#_[2][3][4][5]委托、事件、委托与事件的区别、泛型委托、Func\Action\predicate
  5. 手机app 有没有window.location.href_热议小程序使用场景越来越多,未来有没有可能替代手机APP?...
  6. cdh必须要在root用户搭建吗_基于cloudera CDH5的环境搭建
  7. automapper java 有什么_对象映射工具AutoMapper介绍
  8. 软件质量保证与测试文档怎么写,软件质量保证与测试整理版.pdf
  9. linux降低屏幕亮度,降低屏幕亮度,减缓眼疲劳 (linux/windows/firefox/android)
  10. C++知识点杂记1——typedef、static_cast、const_cast、遍历二维数组、聚合类