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 相关文章推荐
Convert Seconds To Hours
Jun 16 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
Jan 07 Javascript
为指定的元素添加遮罩层的示例代码
Jan 15 Javascript
jQuery的bind()方法使用详解
Jul 15 Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
Jul 27 Javascript
JavaScript实现快速排序的方法
Jul 31 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
Nov 29 Javascript
jquery获取下拉框中的循环值
Feb 08 Javascript
浅谈pc端rem字体设置的问题
Aug 03 Javascript
layui导出所有数据的例子
Sep 10 Javascript
vue中echarts引入中国地图的案例
Jul 28 Javascript
OpenLayers3实现图层控件功能
Sep 25 Javascript
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内存相关的功能特性详解
2013/06/08 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
事件模型在各浏览器中存在差异
2010/10/20 Javascript
关于jQuery参考实例2.0 用jQuery选择元素
2013/04/07 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
2013/11/28 Javascript
JavaScript立即执行函数的三种不同写法
2014/09/05 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
JavaScript的removeChild()函数用法详解
2015/12/27 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
2016/12/27 Javascript
vue中路由验证和相应拦截的使用详解
2017/12/13 Javascript
微信小程序实现日历效果
2018/12/28 Javascript
Element输入框带历史查询记录的实现示例
2019/01/15 Javascript
vue实现拖拽进度条
2021/03/01 Vue.js
[01:07:11]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python 写的一个爬虫程序源码
2016/02/28 Python
机器学习python实战之决策树
2017/11/01 Python
python将回车作为输入内容的实例
2018/06/23 Python
opencv python 基于KNN的手写体识别的实例
2018/08/03 Python
python重试装饰器的简单实现方法
2019/01/31 Python
浅谈Python中eval的强大与危害
2019/03/13 Python
一文了解Python并发编程的工程实现方法
2019/05/31 Python
python字典的遍历3种方法详解
2019/08/10 Python
pytorch使用指定GPU训练的实例
2019/08/19 Python
Python之qq自动发消息的示例代码
2021/02/18 Python
域名注册、建站工具、网页主机、SSL证书:Dynadot
2017/01/06 全球购物
HUGO BOSS美国官方网上商店:世界知名奢侈品牌
2017/08/04 全球购物
美国隐形眼镜网:Major Lens
2018/02/09 全球购物
中专生自我鉴定书范文
2013/12/28 职场文书
家长给孩子的评语
2014/01/30 职场文书
幼儿园教师辞职信
2019/06/21 职场文书
JS前端canvas交互实现拖拽旋转及缩放示例
2022/08/05 Javascript
详解Golang如何实现支持随机删除元素的堆
2022/09/23 Python