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 相关文章推荐
JqGrid web打印实现代码
May 31 Javascript
javascript真的不难-回顾一下基础知识
Jan 15 Javascript
用IE重起计算机或者关机的示例代码
Mar 10 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
Oct 20 Javascript
jquery插件bxslider用法实例分析
Apr 16 Javascript
jQuery插件pagewalkthrough实现引导页效果
Jul 05 Javascript
详解bootstrap用dropdown-menu实现上下文菜单
Sep 22 Javascript
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
Nov 01 Javascript
Vue-cli-webpack搭建斗鱼直播步骤详解
Nov 17 Javascript
解决vue处理axios post请求传参的问题
Mar 05 Javascript
vue+django实现一对一聊天功能的实例代码
Jul 17 Javascript
Element Card 卡片的具体使用
Jul 26 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之第五天
2006/10/09 PHP
PHP在线打包下载功能示例
2016/10/15 PHP
php封装的单文件(图片)上传类完整实例
2016/10/18 PHP
基于jquery的时间段实现代码
2012/08/02 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
2013/04/16 Javascript
根据表格中的某一列进行排序的javascript代码
2013/11/29 Javascript
Jquery使用Firefox FireBug插件调试Ajax步骤讲解
2013/12/02 Javascript
node.js中的console.time方法使用说明
2014/12/09 Javascript
jQuery找出网页上最高元素的方法
2015/03/20 Javascript
Javascript中判断对象是否为空
2015/06/10 Javascript
JavaScript模拟实现键盘打字效果
2015/06/29 Javascript
JavaScript实现算术平方根算法-代码超简单
2015/09/11 Javascript
整理Javascript基础入门学习笔记
2015/11/29 Javascript
jquery遍历table的tr获取td的值实现方法
2016/05/19 Javascript
JavaScript 继承详解(五)
2016/10/11 Javascript
基于Vue实现tab栏切换内容不断实时刷新数据功能
2017/04/13 Javascript
jquery append与appendTo方法比较
2017/05/24 jQuery
解决layer弹层遮罩挡住窗体的问题
2018/08/17 Javascript
jQuery时间戳和日期相互转换操作示例
2018/12/07 jQuery
请求时token过期自动刷新token操作
2020/09/11 Javascript
初学Python函数的笔记整理
2015/04/07 Python
python for 循环获取index索引的方法
2019/02/01 Python
Django 实现admin后台显示图片缩略图的例子
2019/07/28 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
Python tkinter 下拉日历控件代码
2020/03/04 Python
Python3自定义http/https请求拦截mitmproxy脚本实例
2020/05/11 Python
CSS3制作轮播图的一种方法
2019/11/11 HTML / CSS
Dune London官网:英国著名奢华鞋履品牌
2017/11/30 全球购物
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
司机检讨书
2014/02/13 职场文书
文体活动总结范文
2014/05/05 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书
2019年大学生学年自我鉴定!
2019/03/25 职场文书
python状态机transitions库详解
2021/06/02 Python
关于MySQL中的 like操作符详情
2021/11/17 MySQL
Go gRPC进阶教程gRPC转换HTTP
2022/06/16 Golang