iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >ajax请求前端跨域问题原因及解决方案
  • 678
分享到

ajax请求前端跨域问题原因及解决方案

2024-04-02 19:04:59 678人浏览 薄情痞子
摘要

目录一、跨域是怎么形成的二、导致跨域的根本原因三、解决方法1 、JSONP2、 CORS3 、代理转发一、跨域是怎么形成的 当我们请求一个url的 协议、域名、端口三者之间任意一个与

一、跨域是怎么形成的

当我们请求一个url的 协议、域名、端口三者之间任意一个与当前页面url的协议、域名、端口 不同这种现象我们把它称之为跨域

跨域会导致:
1、无法读取非同源网页的 Cookie、LocalStorage 和 IndexedDB
2、无法接触非同源网页的 DOM
3、无法向非同源地址发送 ajax 请求(可以发送,但浏览器会拒绝接受响应)

二、导致跨域的根本原因

导致跨域的根本原因是请求浏览器的同源策略导致的 ,而跨域请求报错的原因是: 浏览器同源策略 && 请求是ajax类型 && 请求确实跨域了

三、解决方法

给大家介绍三种方法 jsonp,cors,代理转发

1 、JSONP

JSONP 是服务器与客户端跨源通信的常用方法。最大特点就是简单适用,兼容性好(兼容低版本IE),缺点是只支持get请求,不支持post请求。
原理:img、srcipt,link标签的src或href属性不受同源策略限制,可以用来作为请求,后端接受请求后返回一个回调函数callback,调用前端已经定义好的函数,从而实现跨域请求。

举个很简单的例子 : 我们通过img标签的src属性, 请求一个网络地址的图片 ,这就是非同源请求了 ,但是由于浏览器的同源策略只对ajax请求有效所以 我们的请求不会受到影响 。换句话来说 只有ajax请求才会产生跨域问题。

2、 CORS

CORS 是跨域资源分享(Cross-Origin Resource Sharing)的缩写。它是 W3C 标准,属于跨源 AJAX 请求的根本解决方法。

CORS允许任何类型的请求。在使用CORS来访问数据的时候,客户端不需要更改任何数据访问逻辑。所有的一切工作都是在服务端及浏览器之间自动完成的。前端代码与发送普通Ajax请求没有差异,我们只需在服务端设置即可(后端的活)

3 、代理转发

在这里插入图片描述

在前端服务和后端接口服务之间 架设一个中间代理服务,它的地址保持和前端服务器一致,那么:
这样,我们就可以通过中间这台服务器做接口转发,在开发环境下解决跨域问题,看起来好像挺复杂,其实Vue-cli已经为我们内置了该技术,我们只需要按照要求配置一下即可。

vue.config.js 的devServer(开发环境)里 配置代理服务器 通过这个代理服务器发送请求 这样就不纯在跨域的问题了 代码如下:


module.exports = {
  devServer: {
    // ... 省略
    // 代理配置
    proxy: {
        // 如果请求地址以/api打头,就出触发代理机制
        // Http://localhost:9588/api/login -> http://localhost:3000/api/login
        '/api': {
          target: 'http://localhost:3000' // 我们要代理的真实接口地址
        }
      }
    }
  }
}

记得baseURL里的根路径 是相对地址,而不能是绝对地址

以上就是ajax请求前端跨域问题原因及解决方案的详细内容,更多关于ajax跨域问题原因及解决的资料请关注编程网其它相关文章!

--结束END--

本文标题: ajax请求前端跨域问题原因及解决方案

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ajax请求前端跨域问题原因及解决方案
    目录一、跨域是怎么形成的二、导致跨域的根本原因三、解决方法1 、JSONP2、 CORS3 、代理转发一、跨域是怎么形成的 当我们请求一个url的 协议、域名、端口三者之间任意一个与...
    99+
    2022-11-12
  • gateway网关与前端请求跨域问题的解决方案
    gateway网关与前端请求的跨域问题 最近因项目需要,引入了gateway网关。可是发现将前端请求的端口指向网关后,用postman发送请求是正常的,用浏览器页面点击请求会出现跨域...
    99+
    2022-11-12
  • AJAX请求以及解决跨域问题详解
    目录AJAX 介绍一.原生AJAX请求(GET)二.jQuery AJAX请求(GET 和POST)三.跨域问题的解决四.其他解决跨域问题方法总结AJAX 介绍 AJAX其实就是异步...
    99+
    2022-11-13
  • Ajax请求跨域的解决方案
    这篇文章主要讲解了“Ajax请求跨域的解决方案”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Ajax请求跨域的解决方案”吧!  由于浏览器实现的同源策略的限...
    99+
    2022-10-19
  • ajax跨域问题以及解决方案
    这期内容当中小编将会给大家带来有关ajax跨域问题以及解决方案,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。复现Ajax跨域问题做两个简单的小项目复现Ajax跨域问题. 后端语言使用Java首先是一个简单...
    99+
    2023-06-08
  • 如何解决Ajax请求跨域问题
    这期内容当中小编将会给大家带来有关如何解决Ajax请求跨域问题,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、解决方案:1,在服务器端的响应头中添加一个http参数:res.setHeader(&quo...
    99+
    2023-06-08
  • 【uniapp】uni.request请求跨域问题解决方案
    例如,运行H5页面,请求一个地址资源,如果不是本站地址,浏览器就会报跨域错误,这样访问受限 问题呈现 例如,项目代码里是这样写的,运行H5测试 uni.request({url:'https://gi...
    99+
    2023-09-20
    uni-app 前端 服务器 跨域访问 代理访问
  • vue如何解决axios请求前端跨域问题
    目录前言一、为什么会出现跨域的问题?二、解决方案跨域资源共享(CORS)写在最后前言 最近在写纯前端的vue项目的时候,碰到了axios请求本机的资源的时候,出现了访问报404的问...
    99+
    2022-11-12
  • 前端跨域问题解决及七大跨域原理详解
    目录为什么跨域?跨域的时机?同域情况 && 跨域情况?解决跨域的方案JSONPWebSocketCorsNode接口代理NginxpostMessagedocumen...
    99+
    2022-11-13
  • 如何解决Ajax请求WebService跨域问题
    这篇文章主要介绍如何解决Ajax请求WebService跨域问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、背景  用Jquery中Ajax方式在asp.net开发环境中Web...
    99+
    2022-10-19
  • AJAX的跨域问题解决方案
    目录跨域的概述区别同源与不同源同源策略有什么用?AJAX跨域解决方案方案一、设置响应头方案二、jsonp方案三、代理机制(httpclient)总结跨域的概述 跨域是指从一个域名的网...
    99+
    2022-12-28
    ajax跨域问题以及解决方案 ajax跨域是什么 ajax调用跨域
  • vue如何解决axios请求出现前端跨域问题
    本篇内容主要讲解“vue如何解决axios请求出现前端跨域问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue如何解决axios请求出现前端跨域问题”吧!在...
    99+
    2022-10-19
  • ajax本地跨域请求以及解决方法
    什么是跨域? 我们通常所说的跨域是狭义的,是由浏览器同源策略限制的一类请求场景。所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源,只要没有同时满足这三个条件的请求即为跨域请求,跨域请求控制台一般会出...
    99+
    2023-09-15
    ajax php apache Powered by 金山文档
  • Security框架:如何使用CorsFilter解决前端跨域请求问题
    目录项目情况CORS介绍解决方案项目情况 最近做的pmdb项目是前后端分离的, 由于测试的时候是前端与后端联调,所以出现了跨域请求的问题。 浏览器默认会向后端发送一个Options方...
    99+
    2022-11-12
  • Security框架中怎么使用CorsFilter解决前端跨域请求问题
    本篇内容主要讲解“Security框架中怎么使用CorsFilter解决前端跨域请求问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Security框架中怎么使用CorsFilter解决前端跨...
    99+
    2023-06-25
  • ajax跨域请求js拒绝访问的问题如何解决
    本篇内容介绍了“ajax跨域请求js拒绝访问的问题如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • Nginx如何解决前端跨域问题以及CORS跨域配置
    Nginx如何解决前端跨域问题以及CORS跨域配置,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Nginx的CORS配置,网上太多这配置了,但大家更多的复制粘贴...
    99+
    2023-06-04
  • 前后端分离和跨域问题的详细解决方案(CORS的原理)
    目录前后端分离前后端分离的好处个人理解上存在两种解释跨域问题存在的原因跨域问题的解决方案修改浏览器配置解决跨域使用jsonp解决跨域CORS解决跨域 服务软件实现跨域基于A...
    99+
    2023-02-15
    前后端分离跨域解决方案 前后端分离 跨域 跨域解决方案前端
  • 多ajax请求的各类问题解决方案
    这篇文章主要讲解了“多ajax请求的各类问题解决方案”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“多ajax请求的各类问题解决方案”吧! ...
    99+
    2022-10-19
  • 怎么用iframe设置代理解决ajax跨域请求问题
    本篇内容介绍了“怎么用iframe设置代理解决ajax跨域请求问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作