vue.js使用代理和使用Nginx来解决跨域的问题


Posted in Javascript onFebruary 03, 2018

使用Nginx 反向代理解决跨域问题(vue.js使用代理去掉vue.js因为跨域而触发的options请求)

我们的项目还是需要node.js作为容器的

一、Windows 下安装Nginx (官网下载稳定版http://nginx.org/en/download.html)

二、修改config里的nginx.conf文件的server

server { 
listen 8899;// 你的端口 
server_name localhost; 
root C:/ZOBSF_F/dist;//你打包部署的文件路径 
#charset koi8-r; 
#access_log logs/host.access.log main; 
# 匹配 api 路由的反向代理到API服务 
location ^~/api { 
proxy_pass http://119.23.227.141:10001/;//你的后端IP和端口 
} 
#根据路由设置,避免出现404 
location / { 
try_files $uri $uri/ @router; 
index index.html; 
} 
location @router { 
rewrite ^.*$ /index.html last; 
} 
#error_page 404 /404.html; 
# redirect server error pages to the static page /50x.html 
# 
error_page 500 502 503 504 /50x.html; 
location = /50x.html { 
root html; 
} 
# proxy the PHP scripts to Apache listening on 127.0.0.1:80 
# 
#location ~ \.php$ { 
# proxy_pass http://127.0.0.1; 
#} 
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
# 
#location ~ \.php$ { 
# root html; 
# fastcgi_pass 127.0.0.1:9000; 
# fastcgi_index index.php; 
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 
# include fastcgi_params; 
#} 
# deny access to .htaccess files, if Apache's document root 
# concurs with nginx's one 
# 
#location ~ /\.ht { 
# deny all; 
#} 
}

三、 你的uve.js打包的dist文件如下

vue.js使用代理和使用Nginx来解决跨域的问题

四、然后再加一个项目启动配置文件 server.production.js

var express = require('express');
var app = express();
var compression = require('compression');
var proxyMiddleware = require('http-proxy-middleware')
var history = require('connect-history-api-fallback');
app.use(compression());
app.use(express.static(__dirname));
app.middleware = [//使用代理api
    proxyMiddleware(['/api'], {target: 'http://192.168.11.103:10001',
    changeOrigin: true,
    pathRewrite: {
    '^/api' : '/', 
  },}),
];
app.get('*', function(req, res) {
  res.sendFile(__dirname + '/index.html');
});
app.use(history());
app.use(app.middleware);

app.listen('8080', function(error) {
  console.info("==================系统正在启动中...=============================");
 if (error) {
  console.error(error)
 } else {
  console.info("==================9999系统启动成功!!!=============================")
 }
});

五、然后在项目目录下使用命令node server.production.js 回车发现包缺少依赖,使用npm install [报错提示的依赖组件] 即可 分别有express、compression、http-proxy-middleware等。

然后启动项目就可以了 访问地址http://localhost:8080/xxx即可

六、vue.js使用代理具体可以百度(在config配置文件里的inde.js修改就可了)

proxyTable: {
     '/api': {
    target: Host.Host,//设置你调用的接口域名和端口号 别忘了加http
    changeOrigin: true,
    pathRewrite: {
     '^/api': '/'//这里理解成用‘/api'代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://40.00.100.100:3002/user/add',直接写‘/api/user/add'即可
    }
   }
  },

以上这篇vue.js使用代理和使用Nginx来解决跨域的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于JavaScript实现仿京东图片轮播效果
Nov 06 Javascript
Vue.js基础知识汇总
Apr 27 Javascript
TableSort.js表格排序插件使用方法详解
Feb 10 Javascript
JavaScript严格模式下关于this的几种指向详解
Jul 12 Javascript
使用vue实现grid-layout功能实例代码
Jan 05 Javascript
Vue iview-admin框架二级菜单改为三级菜单的方法
Jul 03 Javascript
Vue文件配置全局变量的实例
Sep 06 Javascript
解决vue-cli脚手架打包后vendor文件过大的问题
Sep 27 Javascript
使用apifm-wxapi快速开发小程序过程详解
Aug 05 Javascript
Vue开发环境中修改端口号的实现方法
Aug 15 Javascript
JavaScript Event Loop相关原理解析
Jun 10 Javascript
vuex的数据渲染与修改浅析
Nov 26 Vue.js
vue-cli开发时,关于ajax跨域的解决方法(推荐)
Feb 03 #Javascript
JavaScript设计模式之调停者模式实例详解
Feb 03 #Javascript
JavaScript实现求最大公共子串的方法
Feb 03 #Javascript
Node.js实现mysql连接池使用事务自动回收连接的方法示例
Feb 03 #Javascript
js删除数组中的元素delete和splice的区别详解
Feb 03 #Javascript
JS删除数组里的某个元素方法
Feb 03 #Javascript
jQuery niceScroll滚动条错位问题的解决方法
Feb 03 #jQuery
You might like
一步一步学习PHP(2)――PHP类型
2010/02/15 PHP
Javascript 类与静态类的实现(续)
2010/04/02 Javascript
jQuery 无刷新分页实例代码
2013/11/12 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
JavaScript中省略元素对数组长度的影响
2016/10/26 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
2017/04/13 Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
2017/05/20 jQuery
原生JS+Canvas实现五子棋游戏实例
2017/06/19 Javascript
实例详解ztree在vue项目中使用并且带有搜索功能
2018/08/24 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
基于vue实现简易打地鼠游戏
2020/08/21 Javascript
[16:19]教你分分钟做大人——风暴之灵
2015/03/11 DOTA
[02:10]2018DOTA2亚洲邀请赛赛前采访-Liquid
2018/04/03 DOTA
[49:27]LGD vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python标准库os.path包、glob包使用实例
2014/11/25 Python
Python中property函数用法实例分析
2018/06/04 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
python匹配两个短语之间的字符实例
2018/12/25 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
2020/04/16 Python
俄罗斯和世界各地的酒店预订:Hotels.com俄罗斯
2016/08/19 全球购物
花园仓库建筑:Garden Buildings Direct
2018/02/16 全球购物
英国天然有机美容护肤品:Neal’s Yard Remedies
2018/05/05 全球购物
意大利灯具购物网站:Lampade.it
2018/10/18 全球购物
德国亚洲食品网上商店:asiafoodland.de
2019/12/28 全球购物
电气工程和自动化自荐信范文
2013/12/25 职场文书
生产车间班组长岗位职责
2014/01/06 职场文书
上课迟到检讨书100字
2014/01/11 职场文书
运动会解说词50字
2014/01/18 职场文书
给实习单位的感谢信
2014/02/01 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
竞选班长演讲稿500字
2014/08/22 职场文书
应届毕业生求职信范文
2015/03/19 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
幽默导游词开场白
2015/05/29 职场文书
党支部季度考核意见
2015/06/02 职场文书
详解SQL的窗口函数
2022/04/21 Oracle