vue中怎么解决跨域问题_vue本地访问服务器跨域

vue中怎么解决跨域问题_vue本地访问服务器跨域vue项目中如何解决跨域问题跨域的含义​ 跨域的本质就是浏览器基于同源策略的一种安全手段。所谓同源就是必须有以下三个相同点:协议相同、主机相同、端口相同。如果其中有一项不同,即出现非同源请求,就会产生跨域。​ 跨域实际上是浏览器的限制,开发中使用postman请求接口能够获得数据就印证了跨域是浏览器的限制这个问题。解决方法​ 一般前端中解决跨域问题的方法有JSONP,CROS,Proxy等,这里我们主要讲解一下在vue中常用的CROS和Proxy方法。CROS​ CROS是Cros

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

vue项目中如何解决跨域问题

跨域的含义

​ 跨域的本质就是浏览器基于同源策略的一种安全手段。所谓同源就是必须有以下三个相同点:协议相同、主机相同、端口相同。如果其中有一项不同,即出现非同源请求,就会产生跨域。

​ 跨域实际上是浏览器的限制,开发中使用 postman请求接口能够获得数据就印证了跨域是浏览器的限制这个问题。

解决方法

​ 一般前端中解决跨域问题的方法有 JSONP,CROS,Proxy等,这里我们主要讲解一下在 vue中常用的 CROS和 Proxy方法。

CROS

​ CROS是 Cross-Origin Resource Sharing的缩写,翻译过来就是跨域资源共享的意思。它由一系列传输的HTTP头组成,这些HTTP头会决定浏览器是否阻止前端 JavaScript代码获取跨域请求的响应。

​ CORS的实现比较简单方便,只需要增加一些 HTTP头,让服务器能声明允许的访问来源。只要后端实现了 CROS就实现了跨域。

Proxy

​ Proxy也称为网络代理,是一种特殊的网络服务,允许一个客户端通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接,一些网关、路由器等网络设备就具有网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止服务器被攻击。

​ 在 vue项目中实现该功能,有以下几种方法:

  1. 方法一:如果是通过 vue-cli脚手架搭建项目,可以通过 webpack设立一个本地服务器作为请求的代理对象,通过该服务器转发请求至目标服务器,得到结果后再转发给前端。但是在最终项目发布上线时,如果 web应用和接口服务器不在一起仍会产生跨域问题。解决方法是,可以在vue.config.js文件中新增以下代码:
module.exprots = { 
   
    devServer: { 
   
        host: '127.0.0.1', // 本地地址
        port: 8084, // 端口号
        open: true, // 配置项目在启动时自动在浏览器打开
        proxy: { 
   
            '/api' : { 
    // '/api'是代理标识,一般是每个接口前的相同部分
                target: "http://xxx.xxx.xx.xx:8080", // 请求地址,一般是服务器地址
                changeOrigin: true, // 是否进行跨域
                pathRewrite: { 
    // pathRewrite的作用是把请求接口中的 '/api'替换掉,一般是替换为空""
                    '^/api':""
                }
            }
        }
    }
}
  1. 方法二:通过服务端实现代理请求转发。以 express框架为例:
var express = require('express');
const proxy = require('http-proxy-middleware')
const app = express()
app.use(express.static(_dirname+'/'))
app.use('/api',proxy({ 
   
    traget:'http://localhost:8080',
    changeOrigin: false
}));
module.exprots = app
  1. 方法三:通过配置 nginx实现代理(nginx是一个web服务器,需要到相应的官网进行下载,且进行相应的配置):
server { 
   
    listen 80; #监听的端口号
    server_name xxx.xxx.com; #当前服务器的域名
    location / { 
   
        root /var/www/html;
        index index.html index.html;
        try_files $uri $uri/ /index.html;
    }
    location /api { 
    #请求头中带有 '/api'便会进行代理
        proxy_pass htpp://127.0.0.1:3000;
        proxy_redirect off;
        proxy_set_header Host  $host;
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
    }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193645.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 寻找最长回文子串

    寻找最长回文子串最长回文子串的问题描述:给出一个字符串S,求S的最长回文子串的长度。样例:字符串”PATZJUJZTACCBCC”的最长回文子串为“ATZJUJZTA”,长度为9。先看暴力解法:枚举子串的两个端点i和j,判断在i,区间内的子串是否回文。从复杂度上来看,枚举端点需要O(n2),判断回文需要O(n),因此总复杂度是O(n3)。介绍动态规划的方法,使用动态规划可以达到…

    2022年5月22日
    37
  • linux 系统查看网卡配置信息_如何查看自己电脑网卡配置

    linux 系统查看网卡配置信息_如何查看自己电脑网卡配置  Linux系统查看网卡配置,有几种方式,分述如下。方法一:ifconfig命令查看设置网卡ifconfig:查看所有活动网卡信息,能查看IP地址和子网掩码,但是不能查看网关和DNS地址),还可以临时设置某一网卡的IP地址和子网掩码。[root@cloudgw~]#ifconfigeth0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu1500inet172.19.243.202ne

    2022年10月19日
    0
  • 通过CLR API实现C++调用C#代码交互

    通过CLR API实现C++调用C#代码交互

    2021年9月2日
    51
  • faster-rcnn 之 RPN网络的结构解析以及RPN代码详解

    faster-rcnn 之 RPN网络的结构解析以及RPN代码详解【首先】:大家应该要了解卷积神经网络的连接方式,卷积核的维度,反向传播时是如何灵活的插入一层;这里我推荐一份资料,真是写的非常清晰,就是MatConvet的用户手册,这个框架底层借用的是caffe的算法,所以他们的数据结构,网络层的连接方式都是一样的;建议读者看看,很快的;下载链接:点击打开链接【前面5层】:作者RPN网络前面的5层借用的是ZF网络,这个网络的结构图我截个图放在下面

    2022年6月23日
    58
  • 如何彻底卸载sql2019_win10无法卸载软件

    如何彻底卸载sql2019_win10无法卸载软件重新安装SQLServer2019等要注意的事项

    2022年10月21日
    0
  • pycharm安装opencv-python_pycharm opencv

    pycharm安装opencv-python_pycharm opencv使用pip安装:pipinstallpython-opencv在网络距离美国较远的情况下,或PIP版本未达到要求的情况下,会install失败。解决方法1.重试2.科学方法,这里说明使用科学方法的端口问题,切记不要和本地计算机使用同一个端口,容易造成Pycharm未知错误。3.手动去官网下载文件这里有两种类型的手动安装文件setup.pyXXXX.whl以上两种文件都可以通过pycharm的命令行工具直接cd到目录进行直接安装。方法:1pyth

    2022年8月27日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号