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 相关文章推荐
动态表格Table类的实现
Aug 26 Javascript
JavaScript生成GUID的多种算法小结
Aug 18 Javascript
分享一则javascript 调试技巧
Jan 02 Javascript
Javascript实现的Map集合工具类完整实例
Jul 31 Javascript
必备的JS调试技巧汇总
Jul 20 Javascript
JavaScript DOM节点操作方法总结
Aug 23 Javascript
js点击任意区域弹出层消失实现代码
Dec 27 Javascript
原生JS实现几个常用DOM操作API实例
Jan 19 Javascript
js自制图片放大镜功能
Jan 24 Javascript
jQuery.Form上传文件操作
Feb 05 Javascript
在vue中使用jointjs的方法
Mar 24 Javascript
微信小程序自定义可滑动日历界面
Dec 28 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 session 预定义数组
2009/03/16 PHP
PHP常用文件操作函数和简单实例分析
2016/06/03 PHP
javascript 静态对象和构造函数的使用和公私问题
2010/03/02 Javascript
js Event对象的5种坐标
2011/09/12 Javascript
jQuery ajax(复习)—Baidu ajax request分离版
2013/01/24 Javascript
js简单实现标签云效果实例
2015/08/06 Javascript
javascript函数式编程程序员的工具集
2015/10/11 Javascript
一起学写js Calender日历控件
2016/04/14 Javascript
AngularJS中的表单简单入门
2016/07/28 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
2016/08/15 Javascript
基于vue.js实现图片轮播效果
2016/12/01 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
Vue.js列表渲染绑定jQuery插件的正确姿势
2017/06/29 jQuery
Nodejs实现文件上传的示例代码
2017/09/26 NodeJs
简化版的vue-router实现思路详解
2018/10/19 Javascript
JavaScript函数的4种调用方法实例分析
2019/03/05 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
JS使用正则表达式判断输入框失去焦点事件
2019/10/16 Javascript
vant时间控件使用方法详解
2020/12/24 Javascript
Python实现的多线程端口扫描工具分享
2015/01/21 Python
Python文档生成工具pydoc使用介绍
2015/06/02 Python
python中pandas.DataFrame排除特定行方法示例
2017/03/12 Python
Python编程判断一个正整数是否为素数的方法
2017/04/14 Python
详解Python中的动态属性和特性
2018/04/07 Python
TensorFlow实现随机训练和批量训练的方法
2018/04/28 Python
解决pycharm的Python console不能调试当前程序的问题
2019/01/20 Python
python中使用.py配置文件的方法详解
2020/11/23 Python
CSS3属性使网站设计增强同时不消弱可用性
2009/08/29 HTML / CSS
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
HTML5边玩边学(2)基础绘图实现方法
2010/09/21 HTML / CSS
计算机应用专业自荐信
2014/07/05 职场文书
房屋出租协议书范本(标准版)
2014/09/24 职场文书
2015学校师德师风工作总结
2015/04/22 职场文书
幼儿园语言教学反思
2016/02/23 职场文书
python 实现德洛内三角剖分的操作
2021/04/22 Python