摘要:跨域总结跨域思路跨域解决方案一般分为两种前端解决,后端解决前端解决方案通过前端解决的思想就是,通过设置中间件把跨域的请求转发一下,其实就是反向代理,比如想要访问豆瓣的接口很,但是如果请求的是就不存在跨域反向代理就是截取之后重写请求将请求转发
跨域总结 1.跨域思路
跨域解决方案一般分为两种:前端解决,后端解决
1.1 前端解决方案通过前端解决的思想就是,通过设置中间件把跨域的请求转发一下,其实就是反向代理,比如 http://1.2.3.4:8099 想要访问豆瓣的接口
http://www.douban.com/v?a=1很...,但是如果请求的是http://1.2.3.4:8099/api/v?a=1 就不存在跨域
反向代理就是截取 /api 之后重写请求 将请求转发到http://www.douban.com/ 服务器上
疑问后续更新:关于转发,到底是几次请求
vue react等项目 可以使用 http-proxy-middleware
普通项目 就是以下介绍的 本地安装nginx 反向代理跨域
1.2 后端解决方案后端解决方案,一般是需要后端参与
jsonp 回调函数
CORS 需要后端加头部 但并不是所有浏览器都支持
纯后端配置nginx反向代理解决跨域
以下介绍
前端解决方案:http-proxy-middleware
后端解决方案:nginx 反向代理
2.前端跨域解决方案 http-proxy-middleware 2.1 搭建环境# vue-cli 脚手架 # 安装axios 和 跨域支持的包 http-proxy-middleware npm i axios --save-dev npm install --save-dev http-proxy-middleware #vue-cli 已经把http-proxy-middleware写在项目依赖里面了2.2 正常请求存在跨域
# 在豆瓣API上随便找一个接口做测试,以一下接口为例 https://api.douban.com/v2/book/1220562
下图 浏览器访问接口请求成功
Snip20180806_8.png
下图 vue项目中请求接口
Snip20180806_14.png
下图 代码中访问接口 存在跨域
Snip20180806_9.png
下图 使用http-proxy-middleware,配置 config/index.js
Snip20180806_11.png
下图 跨域成功
Snip20180806_10.png
在虚拟机上找到设置,选择共享文件夹
mac vmware想使用共享文件必须安装vmware-tools
2.1 在虚拟机关闭状态下,选择虚拟机,安装vmware-tools
2.2 在ubuntu中直接使用 apt 安装 之后会介绍
安装vmware-tools之后查看 mnt文件下是否有hgfs文件
3.1 有hgfs说明已经有共享文件的挂载点
3.2 如果没有hgfs文件 说明安装的vm-tools可能和ubuntu版本有冲突
设置共享目录
# 查看当前设置的共享文件 #sudo vmware-hgfsclient # 上述命令可能由于没有安装包报错,所以先安装一下包 # apt-get install open-vm-tools # apt-get install open-vm-tools-desktop # apt-get install open-vm-tools-dkms # 自己手动创建hgfs并挂载 # mkdir /mnt/hgfs # vmhgfs-fuse .host:/ /mnt/hgfs # 使用文件查看是否有权限进入 /mnt/hgfs 如果没有使用一下命令 # sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o nonempty # 每次进入系统都需要自己mount 可以配置/etc/fstab .host:/ /mnt/hgfs vmhgfs defaults 0 0
完成以上步骤,你会发现 /mnt/hgfs/XXX XX 为你设置的共享目录
3.2 配置nginx 3.2.1 修改nginx默认服务器根目录修改配置文件位置:vim /etc/nginx/sites-available/default
location / { # 配置共享文件的位置 root /mnt/hgfs/ftp; # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; }3.2.2 访问http://XXX 查看配置是否生效(403错误)
403错误可能有两种情况,不要误以为真的没有权限
配置的共享文件下是否有indx.html,没有的话会报错403 Forbidden
真的没有权限 需要修改一下配置 chrod 修改权限
解决Nginx出现403 forbidden
相当良心的解决方案
3.2.3 配置反向代理我用的豆瓣随便的一个接口来测试的
location /api{ # 重写 rewrite ^.+api/?(.*)$ /$1 break; # 配置代理 proxy_pass https://api.douban.com; }3.3 测试跨域
3.4 浏览器测试跨域,跨域成功Title
Snip20180805_4.png
Snip20180805_5.png
Snip20180805_6.png
Snip20180805_7.png
安装vmtools之后在/mnt目录下没有hgfs文件夹
vmware设置共享文件夹
虚拟机找不到/mnt/hgfs挂载目录
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/40063.html
摘要:就鹿晗宣布恋情导致微博宕机事件浅谈大型网站高可用性架构中午吃饭刷着刷着微博发现微博突然挂了。用户在使用浏览器访问一个网站时需要先通过协议向服务器发送请求,之后服务器返回文件与响应信息。 webpack:从入门到真实项目配置 自从出现模块化以后,大家可以将原本一坨代码分离到个个模块中,但是由此引发了一个问题。每个 JS 文件都需要从服务器去拿,由此会导致加载速度变慢。Webpack 最主...
摘要:整理收藏一些优秀的文章及大佬博客留着慢慢学习原文协作规范中文技术文档协作规范阮一峰编程风格凹凸实验室前端代码规范风格指南这一次,彻底弄懂执行机制一次弄懂彻底解决此类面试问题浏览器与的事件循环有何区别笔试题事件循环机制异步编程理解的异步 better-learning 整理收藏一些优秀的文章及大佬博客留着慢慢学习 原文:https://www.ahwgs.cn/youxiuwenzhan...
摘要:手把手教你做个人火的时候,随便一个都能赚的盆满钵满,但是,个人没有服务端,没有美工,似乎就不能开发了,真的是这样的吗秘密花园经典的中文手册。涵盖前端知识体系知识结构图书推荐以及入门视频教程,全的简直不要不要的了。 JavaScript 实现点击按钮复制指定区域文本 html5 的 webAPI 接口可以很轻松的使用短短的几行代码就实现点击按钮复制区域文本的功能,不需要依赖 flash。...
摘要:跨域总结跨域思路跨域解决方案一般分为两种前端解决,后端解决前端解决方案通过前端解决的思想就是,通过设置中间件把跨域的请求转发一下,其实就是反向代理,比如想要访问豆瓣的接口很会有跨域问题,但是如果请求的是就不存在跨域反向代理就是截取之后的请求 跨域总结 1.跨域思路 跨域解决方案一般分为两种:前端解决,后端解决 1.1 前端解决方案 通过前端解决的思想就是,通过设置中间件把跨域的请求转发...
摘要:把数据包裹在一个客户端声明的本地的回调函数中,这样可以动态加载一个跨域服务器数据。在本地声明这个动态中的回调函数名称,并且定义该函数,然后通过参数传递到服务器。 为什么要跨域 我们都知道在浏览器地址栏输入地址的时候可以随便访问一个页面,但是如果你在ajax请求中发出一个xhr请求那么因为浏览器安全策略只有同源的服务器才能处理。这就是同源策略 要求协议/域名/端口三者完全一致才能访问 ...
阅读 3076·2023-04-26 00:53
阅读 3521·2021-11-19 09:58
阅读 1693·2021-09-29 09:35
阅读 3277·2021-09-28 09:46
阅读 3850·2021-09-22 15:38
阅读 2691·2019-08-30 15:55
阅读 3005·2019-08-23 14:10
阅读 3821·2019-08-22 18:17