【笔记】vue-cli 开发环境中跨域连接后台api

  在vue-cli 项目中很多人会用到mock 数据(模拟数据),但是我觉得如果在真实的数据库交互中开发会更有安全感一些,所以查了一下百度很多人推荐的就是:

  跨域!

 跨域是什么概念?不同的主机名,同主机名不同端口号.....这些都是跨域,可以看看这篇文章http://www.qdfuns.com/notes/17659/bb090a096034a8074332a5060e9b6a3c.html

   因为启动vue-cli nodejs 会为我们创建一个服务器,一台电脑的端口号又不可以重复所以便唯有跨域才能获取数据,这里我只介绍在开发环境中进行跨域而在生产环境不需要跨域的情况。这需要前后端的配合

  

  首先,前端方面:

  官方文档介绍了 vue-cli 项目中 config 文件夹下有一个index.js,这个js 文件配置了一些关于打包后生成的文件配置以及开发环境中的文件配置,其中proxyTable 这个属性项是我们要配置的

  如图:

  

  官方标准配置代码为:

  

‘/api‘: {
        // 要请求的服务器地址
        target: ‘http://jsonplaceholder.typicode.com‘,
        changeOrigin: true,
        pathRewrite: {
         // 将目标的服务器地址 替换为如下的地址
         // 这里会将  http://jsonplaceholder.typicode.com 替换为
         // /api 所以发送后台请求的地址就变成 /api/xxx.php 之类的格式了
          ‘^/api‘: ‘‘
        }
  }

而我的的配置是这样的:

‘/yourdaily‘: {
        target: ‘http://localhost/yourdaily/php‘,
        changeOrigin: true,
        pathRewrite: {
          ‘^/yourdaily/php‘: ‘‘
        }
  }

键值显得有些别有用心,因为我的后台文件结构是这样的:

项目文件夹下有一个php 的文件夹保存着api 模块,当我将项目打包(图中的static以及 index.html  文件就是打包后的文件)引入到服务器中我就再也无须修改我的后台接口地址了因为发送请求的地址我直接就可以写成 ‘/yourdaily/php’ 后台的地址和代理的地址是一模一样的。有些取巧。

ok,下面是后端方面的:

·php 文件要设置头部

header(‘content-type:application:json;charset=utf8‘);
header(‘Access-Control-Allow-Origin:*‘);
header(‘Access-Control-Allow-Methods:POST‘);
header(‘Access-Control-Allow-Headers:x-requested-with,content-type‘);

因为php 并没有系统学习所以这些头部也只是网上看一遍理解一下便粘贴下来了,如果不设置头部请求会报错,原因是php 的头部没有设置   Access-Control-Allow-Origin

而跨域中ajax 请求是禁止post 请求的 所以也要加上  Access-Control-Allow-Methods:POST 这一句

时间: 2024-08-04 00:37:24

【笔记】vue-cli 开发环境中跨域连接后台api的相关文章

使用vue cli开发项目中遇到的坑

一.部署文件 使用vue cli 开发项目,执行npm run build命令生成dist静态文件,将dist文件包放到服务器中即可. 刚接触webpack,不知道怎么部署前端文件,原以为需要将app文件上传,在 inux上安装node,以及npm install 一系列的包,捣鼓了很久,发现只需要执行 npm run build 将源码打包成一个静态文        文件即可,上传静态文件dist,将 controller指向index.html. 二.跨域问题 实行前后端分离,使用vue i

vue.js开发环境搭建

1.安装node.js,忽略 2.基于node.js,利用淘宝npm镜像安装相关依赖 在cmd里直接输入:npm install -g cnpm –-registry=https://registry.npm.taobao.org,回车,等待安装... 3.安装全局vue,用于帮助搭建所需的模板框架 在cmd里, 1).输入:cnpm install -g vue-cli,回车,等待安装...2).输入:vue -V,回车,若出现vue信息说明表示成功 4.创建vue项目 在cmd里输入:vue

Hadoop学习笔记(4) ——搭建开发环境及编写Hello World

Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclipse方便. 下载 进入官网:http://eclipse.org/downloads/. 找到相应的版本进行下载,我这里用的是eclipse-SDK-3.7.1-linux-gtk版本. 解压 下载下来一般是tar.gz文件,运行: $tar -zxvf eclipse-SDK-3.7.1-linu

windows下vue.js开发环境搭建教程

这篇文章主要为大家详细介绍了windows下vue.js开发环境搭建教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 最近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中,在网上也搜了很多教程,按着教程来做,也总会出现这样那样的问题(坑啊,由于网上那些教程都是Vue.js 1.x版本的,现在用Vue.js 的构建工具都已经升级到2.0版本了),经过了一段时间的摸索和看官方的教程和api,才了解到2.0版本在1.0版本的基础上做了好多调整,废弃了好多api.废话不多说

vue.js开发环境安装教程

一.nodejs安装-npm安装1.nodejs安装①下载对应系统版本的Node.js:https://nodejs.org/en/download/② 运行程序开始安装,一路next最终install即可2.npm安装(新版Node.js已自带npm)③检测是否安装成功.快捷键win+R,输入cmd回车打开cmd窗口node -v 查看node.js的版本号npm -v 查看node.js自带的npm的版本号3.配置环境变量[说明:这里的环境配置主要配置的是npm安装的全局模块所在的路径,以及

vue的开发环境与项目的创建

搭建vue的开发环境: https://cn.vuejs.org/v2/guide/installation.html 1.必须要安装nodejs 2.搭建vue的开发环境 ,安装vue的脚手架工具 官方命令行工具 npm install --global vue-cli / cnpm install --global vue-cli (此命令只需要执行一次) 3.创建项目 必须cd到对应的一个项目里面 vue init webpack vue-demo01 cd vue-demo01 cnpm

搭建vue的开发环境

搭建vue的开发环境: https://cn.vuejs.org/v2/guide/installation.html(官网地址) 1.必须要安装nodejs 2.搭建vue的开发环境 ,安装vue的脚手架工具   官方命令行工具 npm install --global vue-cli / cnpm install --global vue-cli (此命令只需要执行一次) 3.创建项目   必须cd到对应的一个项目里面 vue init webpack vue-demo01 (创建项目文件夹

vscode下搭建vue.js开发环境(基于最新的@Vue/cli 4.2.2)

2020-02-13. 网上的那些怎么安装vue环境的2.x就不要再看了,都过时了,现在去官网下载,按照他们的设置各种问题.接下来看下最新的安装方法. 前四步是一样的: 1.下载并安装vscode 2.下载并安装node.js(一直next即可) 安装完成之后在终端输入:node -v和npm -v查看是否安装成功.npm是node.js的包管理工具. 3.这里我们可以更改node.js默认下载依赖的位置 在自己安装的node.js文件夹中新建一个node_cache文件夹,新建一个node_g

.Net Core + Angular Cli 开发环境搭建

一.基础环境配置 1.安装VS 2017 v15.3或以上版本 2.安装VS Code最新版本 3.安装Node.js v6.9以上版本 4.重置全局npm源,修正为 淘宝的 NPM 镜像: npm install -g cnpm --registry=https://registry.npm.taobao.org 5.安装TypeScript cnpm install -g typescript typings 6.安装 AngularJS CLI cnpm install -g @angul