返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue跨域问题:Access to XMLHttpRequest at‘httplocalhost解决
  • 807
分享到

vue跨域问题:Access to XMLHttpRequest at‘httplocalhost解决

摘要

目录前言一、背景补充(JSONp)二、实践解决跨域方法(基于封装好的axiOS,非原生)再补充一下原理:总结前言 前两天遇到了跨域问题,报了Access to XMLHttpRequ

前言

前两天遇到了跨域问题,报了Access to XMLHttpRequest at‘httplocalhost的错,在网上找了一些资料,我是通过配置Vue.config.js、proxy实现的,感觉非常方便,分享给大家!

一、背景补充(jsonp)

首先,来个背景,为什么会出现跨域?--(先了解一下另一种jsonp,我用的不是这种方法,但怎么说呢,比如面试,多了解几种方法总是好的,jsonp就不贴具体方法了,因为我这次没试)

因为浏览器有同源策略(补充:协议、域名、端口相同是同源,

同源策略限制:

1、js脚本不能访问另一个域下的cookie、localstorage

2、不能操作另一个域dom

3、ajax不能跨域请求

也就是限制不同源的资源交互,不能跨域访问,但是在一个页面中引入不同域的js却可以自由访问,例如img这个标签,基于这个原理jsonp出现。

jsonp和json没关系,json是数据交换格式,jsonp是非官方数据传输协议。

怎么实现,前端传callback参数,后端用这个参数的值作为函数名称包裹json数据,这样给前端的就是js代码了。

二、实践解决跨域方法(基于封装好的axios,非原生)

1.在vue项目根目录下找到vue.config.js文件(如果没有该文件则自己创建),在proxy中设置跨域,在proxy中设置要访问的地址,并重写/api为空的字符串

vue.config.js
 
// const { defineConfig } = require('@vue/cli-service')
//在vue中使用proxy进行跨域的原理是:
//将域名发送给本地的服务器(启动vue项目的服务,loclahost:8080),
//再由本地的服务器去请求真正的服务器。
module.exports = {
  devServer:{
    proxy:{
      '/api':{//表示拦截以/api开头的请求路径
        target:'http://(这里填你项目真实的后端地址)',
        chanGorigin: true,//是否开启跨域
        pathRewrite:{
          '^/api':'' //重写api,把api变成空字符,因为我们真正请求的路径是没有api的
        }
      }
    }
  }
}

也就是把vue.config.js配置成上图所示。

2、在axios.create的时候将baseURL设置为api ,简单两步,就完成啦。

http.js(封装axios的那个文件)
 
import axios from 'axios'
var http=axios.create({
    baseURL:'api',//把原来的项目地址,改成api,解决跨域问题
    timeout:3000
})

我就是通过以上这两步,解决了我的跨域问题,希望给大家参考。

再补充一下原理:

1、为什么要重写api变为空字符?

因为如果像我们那样配置好后,我们请求的实际路径会带上api,但我们发起请求的时候是不需要api的,所以要把他变成空字符。

2、在vue中使用proxy进行跨域的原理是:

将域名发送给本地的服务器(启动vue项目的服务,loclahost:8080),再由本地的服务器去请求真正的服务器。

总结

到此这篇关于vue跨域问题:Access to XMLHttpRequest at‘httplocalhost解决的文章就介绍到这了,更多相关vue跨域问题解决内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: vue跨域问题:Access to XMLHttpRequest at‘httplocalhost解决

本文链接: https://lsjlt.com/news/178184.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue跨域问题:Access to XMLHttpRequest at‘httplocalhost解决
    目录前言一、背景补充(jsonp)二、实践解决跨域方法(基于封装好的axios,非原生)再补充一下原理:总结前言 前两天遇到了跨域问题,报了Access to XMLHttpRequ...
    99+
    2023-01-28
    vue跨域问题解决方案 vue怎么解决跨域问题 vue前端解决跨域的方法
  • 解决Vue+SpringBoot+Shiro跨域问题
    目录一、配置Vue前端1、开发跨域配置2、生产跨域配置二、配置spring boot相信大家刚开始做都会遇到这个问题,在网上找了好多也不管用,都写的不全, 在这里记录一下,希望对大家...
    99+
    2024-04-02
  • VUE如何解决跨域问题
    这篇文章主要介绍“VUE如何解决跨域问题”,在日常操作中,相信很多人在VUE如何解决跨域问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”VUE如何解决跨域问题”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-07-02
  • vue跨域问题怎么解决
    1、可以在后端服务器中进行配置,允许指定的域名或IP地址访问后端API,这样就可以解决跨域问题。常用的方法是在服务器端添加CORS(...
    99+
    2023-05-13
    vue跨域问题 vue
  • Vue解决ajax跨域的问题
    目录(一)什么是跨域(二)axios请求(1)请求方式(2)如何发送axios请求(三)配置代理解决跨域问题(1)方法一:使用vuecli配置代理服务器(2)方法二(一)什么是跨域 ...
    99+
    2023-05-14
    Vue ajax跨域 ajax跨域
  • 如何解决Django+vue跨域问题
    小编给大家分享一下如何解决Django+vue跨域问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!跨域由于开发模式为前后端分离...
    99+
    2024-04-02
  • vue的跨域问题怎么解决
    这篇“vue的跨域问题怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue的跨域问题怎么解决”文章吧。在vue中,跨...
    99+
    2023-07-04
  • vue-cli3跨域问题如何解决
    本篇内容介绍了“vue-cli3跨域问题如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1:将任何未知请求转发到代理服务器如:前端地址...
    99+
    2023-07-04
  • Vue如何解决跨域问题详解
    什么是跨域 跨域指浏览器不允许当前页面的所在的源去请求另一个源的数据。源指协议,端口,域名。只要这个3个中有一个不同就是跨域。 这里列举一个经典的列子: #协议跨域http://a....
    99+
    2024-04-02
  • vue-cli3 中怎么解决跨域问题
    这篇文章给大家介绍vue-cli3 中怎么解决跨域问题,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1:将任何未知请求转发到代理服务器如:前端地址:127.0.0.1后端地址:127....
    99+
    2024-04-02
  • vue中axios如何解决跨域问题
    这篇文章主要介绍vue中axios如何解决跨域问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!vue中axios不支持vue.use()方式声明使用。 所以有两种方法可以解决这点:...
    99+
    2024-04-02
  • 解决vue cli3使用axios跨域问题
    目录一、什么是跨域1、跨域2、同源策略3、跨域问题怎么出现的二、使用 axios 演示并解决跨域问题(vue-cli3.0)1、项目创建、与 axios 的使用2、跨域问题重现3、解...
    99+
    2024-04-02
  • Nginx解决跨域问题
    目录 前言 一、跨域问题 1.什么是跨域  2.CORS 二、Nginx跨域处理 三.补充 前言 这几天出现了一个问题,我们中的一个A系统需要给B系统调用,造成了跨域问题。 一、跨域问题 1.什么是跨域 当一个请求url的协议、域...
    99+
    2023-09-02
    nginx 服务器 开发语言
  • VUE跨域问题AccesstoXMLHttpRequestat
    目录问题描述解决方案解决问题描述 VUE发送请求的时候不能请求到正确数据,控制台如下 Access to XMLHttpRequest at 'http://localho...
    99+
    2024-04-02
  • vue-admin-template解决登录和跨域问题解决
    目录一、下载安装项目二、修改登录访问地址三、解决跨域问题一、下载安装项目 git地址:https://github.com/PanJiaChen/vue-admin-template...
    99+
    2024-04-02
  • Vue+SpringBoot+Shiro跨域问题的解决方法
    这篇文章将为大家详细讲解有关Vue+SpringBoot+Shiro跨域问题的解决方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、配置Vue前端在config下index.js中配置代理信息注意:这...
    99+
    2023-06-15
  • Vue项目中怎么解决跨域问题
    本篇内容主要讲解“Vue项目中怎么解决跨域问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue项目中怎么解决跨域问题”吧!跨域跨域报错是前端开发中非常经典的一个错误,报错如下 Ac...
    99+
    2023-07-02
  • vue怎么解决代理和跨域问题
    这篇“vue怎么解决代理和跨域问题”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue怎么解决代理和跨域问题”文章吧。一、安...
    99+
    2023-07-04
  • 解决Django cors跨域问题
    Django cors跨域问题 前后端分离项目中的跨域问题 即同源策略 同源策略:同源策略/SOP(Same origin policy)是一种约定,由 Netscape 公司 19...
    99+
    2024-04-02
  • Vue项目中该如何解决跨域问题
    目录跨域同源策略express服务器vue处理跨域express处理跨域总结跨域 跨域报错是前端开发中非常经典的一个错误,报错如下  Access to XMLHttpRe...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作