axios解决跨域问题

这篇具有很好参考价值的文章主要介绍了axios解决跨域问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Vue3中使用axios访问聚合的天气API,出现跨域问题,需要在前端进行一些配置:

首先是修改vue.config.js:

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  transpileDependencies: true,
  devServer:{
    proxy:{
      '/myapi':{
         // 需要代理的后端接口
        target: 'http://apis.juhe.cn/',
        //开启代理:在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求
        changeOrigin: true,
        //非HTTPS
        secure: false,
         
        // 替换target中的请求地址,也就是说/myapi=/target,
        //请求target这个地址的时候直接写成/api即可。
        pathRewrite:{'^/myapi': '' }
      }
    }
  }
})

这里有两个地方要注意:

1. proxy:{...}必须写在devServer对应的配置对象中。如果书写位置不对,编译时会报错:

ERR: Invalid options in vue.config.js: 'proxy' is not allowed

2. 注意替换的规则,是'/myapi' 替换了target,也就是http://apis.juhe.cn/,这样替换后URL是没有最后的/,如果在http://apis.juhe.cn/后面还有URL,要注意替换后访问路径的拼接。如果少了/,导致URL不正取,浏览器会报CORS policy错误!!

配置好之后,修改代码:

原始的聚合天气预报访问URL是

http://apis.juhe.cn/simpleWeather/query?city=%E5%8C%97%E4%BA%AC&key=15b386******0be2ce3"

现在 http://apis.juhe.cn/被替换为/myapi,所以新的访问路径是:

'/myapi' + '/simpleWeather/query?city=%E5%8C%97%E4%BA%AC&key=15b386******0be2ce3'

这样才是正确的URL。

let api = "/simpleWeather/query?city=%E5%8C%97%E4%BA%AC&key=15b386******0be2ce3";
this.axios.get("/myapi"+api).then((resp)=>{
    console.log(resp);
});

 axios解决跨域问题

 文章来源地址https://www.toymoban.com/news/detail-475489.html

到了这里,关于axios解决跨域问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决 Axios 跨域问题,轻松实现接口调用

    跨域是指访问另外一个域的资源,由于浏览器的同源策略,默认情况下使用 XMLHttpRequest 和 Fetch 请求时是不允许跨域的。跨域的根本原因是浏览器的同源策略,这是由浏览器对 JavaScript 施加的安全限制。 跨域请求被阻止 (Cross-Origin Request Blocked) : 这是由浏览器实施的同源策略

    2024年02月05日
    浏览(101)
  • Vue axios 的使用与跨域问题

    功能特点 可以在浏览器中发送 XMLHttpRequests 请求 可以在 node.js 中发送 http请求 支持 Promise API 可以拦截请求和响应 可以转换请求和响应数据 客户端支持防止 CSRF 提供了一些并发请求的接口(重要,方便了很多的操作) 自动转JSON数据格式 axios 处理错误处:只需使用 catch() 支持

    2024年02月03日
    浏览(39)
  • 【Vue.js】Vue3全局配置Axios并解决跨域请求问题

    对于前后端分离项目,前端和后端端口不能重复,否则会导致前端或者后端服务起不来。例如前端访问地址为: http://localhost:8080/ ,后端访问地址为 http://localhost:8081/ 。后端写好Controller,当用Axios访问该接口时,将会报错: Access to XMLHttpRequest at \\\' http://localhost:8081/login \\\' from

    2024年02月05日
    浏览(81)
  • 前端异步请求并解决跨域问题(Ajax+axios框架)、后端响应多个数据(JSON)

    目录 一、前后端同步异步请求 1.同步请求: 2.异步请求: 3.跨域问题(前端问题) 4.axios框架(封装后) 二、后端向前端响应多个数据-JSON 1.同步请求:         发送一个请求,回应请求,回应的内容会覆盖浏览器中的内容,这样会 打断 前端其他的正常操作。 2.异步请求:

    2024年02月07日
    浏览(71)
  • VUE项目使用axios发送post跨域请求,返回数据失败问题

    Access to XMLHttpRequest at \\\'http://xxxx\\\' from origin \\\'http://localhost:8080\\\' has been blocked by CORS policy: Response to preflight request doesn\\\'t pass access control check: No \\\'Access-Control-Allow-Origin\\\' header is present on the requested resource. 第一步 ,在后端接受方,对返回的数据添加 响应头 ,使用下面这句代码: 第二步

    2024年02月11日
    浏览(52)
  • SpringBoot解决跨域访问的问题

    说到跨域访问,必须先解释一个名词:同源策略。所谓同源策略就是在浏览器端出于安全考量,向服务端发起请求必须满足:协议相同、Host(ip)相同、端口相同的条件,否则访问将被禁止,该访问也就被称为跨域访问。 虽然跨域访问被禁止之后,可以在一定程度上提高了应用

    2024年02月09日
    浏览(39)
  • 在 VUE 项目中,使用 Axios 请求数据时,提示跨域,该怎么解决?

    在 VUE 项目开发时,遇到个问题,正常设置使用 Axios 库请求数据时,报错提示跨域问题。 那在生产坏境下,该去怎么解决呢? 其可以通过以下几种方式去尝试解决: 例如,如果您的源地址是 http://localhost:8080 ,则可以设置如下响应头: 在上面代码中,使用 Express.js 创建简单

    2024年04月17日
    浏览(51)
  • 记:vite3+vue3+axios前端项目跨域问题解决【前端和服务器nginx配置】

    前言:什么是跨域,网上一搜一大把,所以这里直接跳过,直入主题。 处理方式:不通过后端处理跨域,通过前端+服务器nginx处理。 1.前端涉及处理跨域的必要配置(开发环境、生产环境):vite3、vue3、axios 2.服务器涉及处理跨域的配置(生产环境):nginx【主要用到其配置

    2024年02月01日
    浏览(61)
  • vue解决跨域访问问题(个人学习笔记六)

    先看文章目录,大致了解知识点结构,直接点击文章目录可以跳转到文章指定位置。 vue单页应用项目开发时,避免不了要请求后端,这时通常就会出现跨域问题 浏览器从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都会导致跨域问题。即前端接

    2024年02月15日
    浏览(45)
  • nginx 配置访问地址和解决跨域问题(反向代理)

    1、配置访问地址(通过ip访问) 2、解决跨域问题(反向代理) 问题:前端页面(端口30的ip)需要去访问一个43端口的后端接口,属于跨域问题;

    2024年04月09日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包