由于浏览器的同源策略 ajax请求不可以接收到请求响应回来的数据
请求数据需要调用浏览器的内置构造函数 XMLHttpRequest() 进行 实例对象
var xhr = new XMLHttpRequest();
注意点 在IE8之前支持的 ActiveXobject("Microsoft.XMLHTTP"); 记住要进行兼容处理哦 在这里我就不写了
通过该对象进行获取
获取数据的四种状态 xhr.readyState 该属性保存着请求数据的几种状态
1.xhr.open(请求方式,请求地址,设置同/异步);
2.xhr.send(null);//发送请求 如果是post请求 那么参数需要在send中进行传递
3.会一直检测数据是否返回
4.数据返回 那么xhr.readyState的值是4 说明数据返回成功
那么我们需要进行跨域请求如何做呢
方案一:
利用script标签的src属性请求数据 src属性请求的数据浏览器是不会进行拦截的
<script srrc="http://jiang.com/AJAX/data.php"><script/>
这样我们是可以请求到数据的 但是这样有一些缺点
1.我们无法控制何时发送请求的 页面加载到这里就是发送请求的
2.这样的方式 请求方式是同步的请求 需要请求到数据才会执行下一步的代码 这样页面加载时间可能延长
3.所以建议不要使用这样的方式 不推荐
方案二:
在js中动态创建script标签 指定请求的接口
var script = document.createELement("script");
//将script追加到head标签中
document.getElementsTagName("head")[0].appendChild(script);
优点:我们可以控制请求的时机 并且这样请求的方式是异步的 不会延长页面加载的时间
重要点:我们可以在请求数据中调用请求页面中的函数 使用函数的形参接收请求回来的数据
方案三:
在请求的后端接口设置一个 请求头即可
Access-Control-Allow-Origin
含有这个请求头 前端页面跨域请求的数据就不会被浏览器进行拦截啦
方案四:
使用<iframe>标签 将一个页面 将可以可变的内容部分放置在该标签中 发送请求就会进行刷新啦 严格意义上不算ajax啦
该方式在ajax未出现 就是使用该标签实现请求数据的
以上这篇AJAX跨域请求数据的四种方法(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持尊托云数。
在Intel的早期,Andy Grove遇到一个雇员 - 他 建议公司在芯片的基础上开发个人计...
用Javascript实现下拉菜单,供大家参考,具体内容如下 正在学习大前端中,有代码...
1.想到不停掉眼泪,想到无法控制,我清楚的知道,我会,你不会,所以很多时候我...
编程软件 之前使用pycharm来训练模型发现很难对代码进行实时的修改在训练完模型...
在Asp.net Core之前所有的Action返回值都是ActionResult,Json(),File()等方法返...
因为工作的原因,平时使用电脑比较多,所以总爱琢磨电脑上有哪些好用的软件,让...
本文利用asp和JMAIL实现了发送邮件,大家是不是很好奇这到底是怎么实现的呐,和...
一、概述 sar(System Activity Reporter,系统活动情况报告)是Linux下系统运行状...
效果如下: 1.启动类中加入 SpringBoot重写addResourceHandlers映射文件路径 @Ov...
有些人可能认为 RSS 阅读器已经不再,但它们仍然坚持在这里,特别是当你不想让大...