Ajax跨域问题

一、跨域

在这里插入图片描述

1、跨域是指从一个域名的网页去请求另一个域名的资源。比如从百度(https:/baidu.com)页面去请求京东(https:/www.jd.com)的资源。

2、通过超链接或者form表单提交或者window.location.href的方式进行跨域是不存在问题的(大家可以编写程序测试一下)。但在一个域名的网页中的一段js代码发送ajax请求去访问另一个域名中的资源,由于同源策略的存在导致无法跨域访问,那么ajax就存在这种跨域问题。

3、同源策略是指一段脚本只能读取来自同一来源的窗口和文档的属性,同源就是协议、域名和端口都相同。

4、同源策略有什么用?如果你刚刚在网银输入账号密码,查看了自己还有1万块钱,紧接着访问一些不规矩的网站,这个网站可以访问刚刚的网银站点,并且获取账号密码,那后果可想而知。所以,从安全的角度来讲,同源策略是有利于保护网站信息的。

5、有一些情况下,我们是需要使用ajax进行跨域访问的。比如某公司的A页面(a.bjpowernode.com)有可能需要获取B页面(b.bjpowernode.com)。

二、哪些情况下,可以进行跨域?

以下请求,都是在localhost:8080/a 应用下 向localhost:8081/b 进行发送请求。

1、通过超链接方式是可以跨域的? 是可以的。

在这里插入图片描述

2、form表单是可以跨域? 是可以的。

在这里插入图片描述

3、通过window.location.href/document.location.href 可以跨域吗? 可以的。

在这里插入图片描述

4、使用script标签加载js文件,这个可以跨域吗? 可以的

在这里插入图片描述

5、加载其他应用下的图片,可以进行跨域? 可以的

在这里插入图片描述

三、什么是不能跨域的呢? ajax 是不能跨域

1、为什么不能跨域

在这里插入图片描述

2个站点不能共享一个XML HttpRequest 对象, 因为 如果共享了,意味着
例如银行后台响应的数据,钓鱼网站或者其他网站也能看到银行响应的数据。
所以需要同源策略进行保护。

同源策略是一种安全策略。

举例:
在这里插入图片描述

2、为什么,我们要解决跨域,因为我们现在的系统都是大型应用,是分布式的。例如前后端分离项目、或者微服务等情况。

3、如何解决Ajax跨域问题

例如 A站点 的 a应用 要访问 B站点的 b资源,那么肯定需要 B站点的b应用进行同意。

方案1、设置响应头

设置响应头,允许Ajax跨域请求。 也就是说,a要访问b资源,那么就在b资源里设置响应头

例如:
1、指定个别域名或端口进行访问
在这里插入图片描述
2、指定所有都允许,一般不使用。

s1参数,写为*号即可。

在这里插入图片描述

方案2 、json p 实现跨域 只支持Get请求,不支持Post请求

在这里插入图片描述
超链接 也可以跨域,但是为什么不用超链接呢,因为超链接 会跳转页面,无法局部刷新。

案例 1、 script 访问servlet

在这里插入图片描述

在这里插入图片描述

不是后端java代码,调用sayHello,真正的调用者,还是浏览器。

浏览器会把后端响应的字符串解释执行。

后端代码。
在这里插入图片描述

前端代码:

在这里插入图片描述

案例 2、可以把函数名传递给后端:

在这里插入图片描述
在这里插入图片描述

案例 3、实现局部刷新,而不是一进页面就发起请求。

当点击按钮,才加载script元素。

在这里插入图片描述
在这里插入图片描述

方案3 、jQuery封装的jsonp

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

升级版本:

在这里插入图片描述

后端改:
在这里插入图片描述

在这里插入图片描述

核心代码:
在这里插入图片描述

方案 4: 代理机制 httpclient (详情去B站搜索动力节点 老杜)

在这里插入图片描述

在这里插入图片描述

因为Ajax 请求存在跨域问题,所以我们采用代理的方式,先在 站内,让其通过Ajax 请求访问 代理servlet,然后让该servlet 访问b站点即可。

1、前端 Ajax 向 代理Servlet 发送逻辑核心代码:
在这里插入图片描述

2、代理Servlet 核心代码:
在这里插入图片描述
3.目标Servlet

方案5: nginx 反向代理

nginx 反向代理中野是使用了这种代理机制来完成Ajax的跨域,实现起来非常简单,只要修改一个nginx的配置即可。

Code攻城狮
关注 关注
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
ajax原理以及六大解决跨域的方法,前端多线程面试题
2401_83977605的博客
04-02 509
1、JSONP面试会问:JSONP的原理是什么?怎么实现的?在CORS和postMessage以前,我们一直都是通过JSONP来做跨域通信的。JSONP的原理:通过script标签的异步加载来实现的。比如说,实际开发中,我们发现,head标签里,可以通过script标签的src,它是没有同源限制的,里面放url,加载很多在线的插件。这就是用到了JSONP。JSONP的实现:比如说,客户端这样写:上面的src中,data=name是get请求的参数,myjsonp是和后台约定好的函数名。
ajax跨域问题
山海也有意难平
10-11 4887
跨域问题简单的说就是前台请求一个后台链接,发送请求的前台与后台的地址不在同一个域下,就会产生跨域问题。这里所指的域包括协议、IP地址、端口等。 1.跨域访问安全问题 后端代码: package cn.qs.controller; import java.util.LinkedHashMap; import java.util.Map; import org.apache.commons.collections.MapUtils; import org.springframework.web.bi
完美解决AJAX跨域问题
01-19
AJAX诞生那天起,XMLHttprequest对象不能跨域请求的问题就一直存在。这似乎是一个很经典的问题了。是由于javascript的同源策略(这里不作深入探讨)所导致。 解决的办法,大概有如下几种: 1. 使用中间层过渡的方式(可以理解为“代理”): 中间过渡,很明显,就是在AJAX与不同域的服务器进行通讯的中间加一层过渡,这一层过渡可以是PHP、JSP、c++等任何具备网络通讯功能的语言,由中间层向不同域的服务器进行读取数据的操作。拿asp.net做一个例子,如果需要对不同域的某一个asp.net进行通讯,现在客户端的xmlhttprequest先query本域的一个asp.net
AJAX实现跨域的三种方法
weixin_30401605的博客
05-26 143
由于在工作中需要使用AJAX请求其他域名下的请求,但是会出现拒绝访问的情况,这是因为基于安全的考虑,AJAX只能访问本地的资源,而不能跨域访问。 比如说你的网站域名是aaa.com,想要通过AJAX请求bbb.com域名中的内容,浏览器就会认为是不安全的,所以拒绝访问。 会出现跨域问题的几种情况: 后台在百度上寻找解决方案解决了这个问题,一共总结出三种方案:代理、JSONP、XHR2(X...
Ajax跨域问题 解决方案
11-09
关于跨域,有N种类型,本文只专注于ajax请求跨域(,ajax跨域只是属于浏览器”同源策略”中的一部分,其它的还有Cookie跨域iframe跨域,LocalStorage跨域等这里不做介绍),内容大概如下: 什么是ajax跨域 o原理 o表现(整理了一些遇到的问题以及解决方案) 如何解决ajax跨域 oJSONP方式 oCORS方式 o代理请求方式 如何分析ajax跨域 ohttp抓包的分析 o一些示例
AJAX跨域问题
少不入川。的博客
08-22 2049
跨域简单的说,就是从一个域名的网页去访问另一个域名网页的资源。通过超链接或者form表单提交或者window.location.href的方式进行跨域是不存在问题的。但在一个域名的网页中的一段js代码发送ajax请求去访问另一个域名中的资源,由于的存在导致无法跨域访问,那么ajax就存在这种跨域问题。如果协议一致,域名一致,端口号一致,三个要素都一致,才是同源,其它一律都是不同源接下来我们来谈谈ajax中存在的跨域问题如何解决。
Ajax跨域问题及解决方案
weixin_34292959的博客
04-30 143
复现Ajax跨域问题 做两个简单的小项目复现Ajax跨域问题. 后端语言使用Java 首先是一个简单的订单系统, 通过访问/loadOrderList, 最终以json串形式返回订单集合. 该项目使用Tomcat发布在7070端口. @RequestMapping("/loadOrderList") @ResponseBody public List<Order> loadOrde...
JS跨域ajax访问
weixin_33862993的博客
11-14 99
方式1:jsonp解决跨域访问 需要服务和js配合 服务   [WebMethod] public void HelloWorld2(string name) { HttpContext.Current.Response.ContentType = "application/json;charset=utf-8"; s...
有关Ajax跨域问题的两种解决方法
12-11
Ajax跨域是前端开发中常见的问题,本文描述了以Google浏览器Chrome作为客户端和以Tomcat作为Web服务器的情况下的解决办法。 问题现象 当出现跨域访问的时候ajax通常会报类似如下错误: XMLHttpRequest cannot load ...
PHP Ajax跨域问题解决方案代码实例
01-19
本文通过设置Access-Control-Allow-Origin来实现跨域。 例如:客户端的域名是client.runoob.com,而请求的域名是server.runoob.com。 如果直接使用ajax访问,会有以下错误: XMLHttpRequest cannot load ...
SpringBoot解决ajax跨域问题的方法
08-27
主要为大家详细介绍了SpringBoot解决ajax跨域问题的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
ajax跨域问题以及解决方案
热门推荐
默默前行,勿喜、勿悲、一切随缘!
06-24 4万+
在工作中,大家应该都遇到过ajax跨域问题,浏览器的错误如下: XMLHttpRequest cannot load http://目标地址 No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://当前页面地址' is therefore not allowed a
AJAX请求及解决跨域问题
m0_67403272的博客
07-31 1387
AJAX其实就是异步的js和xml通过ajax可以在浏览器中发送异步请求。最大优势无刷新获取数据优点1.可以无需刷新页面与服务器进行通信2.允许根据用户事件更新部分页面内容当然也存在其缺点问题比如跨域问题等!...
Ajax请求跨域问题
qq_43159578的博客
09-17 504
由于浏览器的同源策略,使得,AJAX请求只能发给同源的网址,否则就报错。除了架设服务器代理,如Nginx(浏览器请求同源服务器,再由后者请求外部服务),有三种方法规避这个限制:    一、 JSONP   JSONP是服务器与客户端跨源通信的常用方法。最大特点就是简单适用,老式浏览器全部支持,服务器改造非常小。   它的基本思想是,网页通过添加一个<script>元素,向服务器请求JSON数据,这种做法不受同源政策限制;服务器收到请求后,将数据放在一个指定名字的回调函数...
AJAX实现跨域的三种种方法(代理,JSONP,XHR2)
03-13 277
由于在工作中需要使用AJAX请求其他域名下的请求,但是会出现拒绝访问的情况,这是因为基于安全的考虑,AJAX只能访问本地的资源,而不能跨域访问。 比如说你的网站域名是aaa.com,想要通过AJAX请求bbb.com域名中的内容,浏览器就会认为是不安全的,所以拒绝访问。 会出现跨域问题的几种情况: 后台在百度上寻找解决方案解决了这个问题,一共总结出三种方案:代理、JSONP、X...
Ajax跨域问题分析
Darryl Cao的博客
08-02 208
前言 从刚接触前端开发起,跨域这个词就一直以很高的频率在身边重复出现,一直到现在,已经调试过N个跨域相关的问题了,16年时也整理过一篇相关文章,但是感觉还是差了点什么,于是现在重新梳理了一下。 个人见识有限,如有差错,请多多见谅,欢迎提出issue,另外看到这个标题,请勿喷~ 题纲 关于跨域,有N种类型,本文只专注于ajax请求跨域(,ajax跨域只是属于浏览器"同源策略"中的一部分,其它的还有C...
Ajax 跨域
热爱编程,热爱技术
04-28 230
转自https://www.cnblogs.com/2mei/p/9251868.html
如何解决 ajax 跨域问题
最新发布
04-23
要解决 Ajax 跨域问题,可以采用以下方法: 1. 通过服务器端代理实现。 2. 使用 JSONP(JSON with Padding)方式进行跨域请求。 3. 设置响应头部的 Access-Control-Allow-Origin 字段,允许指定的域名访问。 4. 使用 HTML5 中的 postMessage() 方法实现跨域通信。 5. 在不同子域之间传递 Cookie 值。 6. 使用 WebSocket 进行跨域数据传输。 7. 使用反向代理服务器进行跨域请求

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 超详细的Maven本地仓库设置、修改IDEA中Maven全局默认配置 60428
  • 基于Star UML3.1版本的课程结业设计餐饮管理系统 21521
  • 通过rpm安装方式安装mysql 12284
  • 使用Junit进行单元测试超详细,这你还学不会? 11265
  • tomcat版本和支持的jdk版本匹配表 9878

分类专栏

  • Java虚拟机 3篇
  • 类的生命周期 3篇
  • 大学生毕业设计 4篇
  • 服务器运维实战
  • Git 1篇
  • 核心知识 1篇
  • java基础 15篇
  • JavaWeb 13篇
  • Spring 2篇
  • SpringMvc 4篇
  • SpringBoot 5篇
  • 数据库
  • Redis 3篇
  • MySql 16篇
  • SqlServer 9篇
  • MyBatis 8篇
  • Maven 8篇
  • 其他
  • 环境搭建 3篇
  • 环境搭建以及软件安装 12篇
  • 地址、定位相关 2篇
  • 项目部署以及安全相关 2篇
  • 支付业务

最新评论

  • 基于Star UML3.1版本的课程结业设计餐饮管理系统

    2201_75418590: 有组件图了嘛哥 能给我看看不

  • 基于Star UML3.1版本的课程结业设计餐饮管理系统

    2201_75418590: 求组件图

  • 超详细的Maven本地仓库设置、修改IDEA中Maven全局默认配置

    YouwillKnwMe: 要重启的,重启才有效

  • 3、java虚拟机-类的生命周期-初始化阶段(与程序员有关)

    普通网友: 学到了,细节很到位!【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • 超详细的Maven本地仓库设置、修改IDEA中Maven全局默认配置

    超人圣白莲: 很详细 感谢

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 3、java虚拟机-类的生命周期-初始化阶段(与程序员有关)
  • 2、Java虚拟机之类的生命周期-连接(验证、准备、解析)
  • 1、Java虚拟机学习-类的生命周期-加载阶段-以及怎样查看方法区中的对象和堆中对象的关联以及静态变量存在什么地方
2024年4篇
2023年20篇
2022年242篇
2021年34篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Code攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司北海网站开发多少钱许昌SEO按天扣费推荐晋城网站推广报价果洛企业网站改版推荐海口网站优化按天扣费多少钱永州至尊标王多少钱徐州网站优化按天收费哪家好自贡如何制作网站哪家好郑州设计公司网站哪家好厦门至尊标王公司铁岭网站制作价格云浮阿里店铺托管哪家好云浮营销网站宁德企业网站制作推荐平凉seo网站优化多少钱永州模板制作报价常州网站设计模板罗湖网站优化推广多少钱酒泉网站改版公司长葛优秀网站设计多少钱永新网站制作设计公司秦皇岛网站优化排名报价唐山网络广告推广哪家好阳江网站建设价格延边seo网站优化多少钱赤峰网站优化软件哈尔滨百度关键词包年推广价格本溪高端网站设计益阳网站关键词优化白银seo推荐歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化