新版XMLHttpRequest支持跨域请求

在标准浏览器下,XMLHttpRequest对象得到升级,支持跨域,用法不变,如下:

var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function() {
            if (xhr.readyState == 4) {
                if (xhr.status == 200) {
                    alert(xhr.responseText);
                }
            }
        }
        xhr.open(‘get‘, ‘http://www.b.com/ajax.php‘, true);
        xhr.send();

但是在新版的XMLHttpRequest中并不推荐使用onreadystatechange事件,而推荐使用onload事件。

当然要想实现跨域,还需要在后端设置允许访问的域,例如:

header(‘Access-Control-Allow-Origin:http://www.a.com‘);

不过在IE下以上都是白说了,IE下使用XDomainRequest对象来实现跨域请求。

用法如下:

ar oXDomainRequest = new XDomainRequest();
        oXDomainRequest.onload = function() {
            alert(this.responseText);
        }
        oXDomainRequest.open(‘get‘, ‘http://www.b.com/ajax.php‘, true);
        oXDomainRequest.send();

XMLHttpRequest2参考网址:http://www.w3.org/TR/XMLHttpRequest2/

XDomainRequest参考网址:https://msdn.microsoft.com/en-us/library/cc288060(VS.85).aspx

时间: 2024-10-03 06:49:13

新版XMLHttpRequest支持跨域请求的相关文章

django 实现全局支持跨域请求

Django 允许跨域请求 一.django 实现支持跨域请求,本人所了解到的方法有两种: 1.视图中进行配置,只实现当前视图支持跨域请求 2.进行全局配置,实现所有视图均支持跨域请求 这里对第二种方法进行一下说明: 1.安装django-cors-headers pip install django-cors-headers 2.配置settings.py文件 INSTALLED_APPS = [ ... 'corsheaders', ... ] MIDDLEWARE_CLASSES = (

XMLHttpRequest的跨域请求

缘起 由于浏览器的同源策略,非同源不可请求. 但是,在实践当中,经常会出现需要跨域请求资源的情况,比较典型的例如某个子域名向负责进行用户验证的子域名请求用户信息等应用. 以前要实现跨域访问,可以通过JSONP.Flash或者服务器中转的方式来实现,但是现在我们有了CORS. CORS与JSONP相比,无疑更为先进.方便和可靠. 1 2 3 1. JSONP只能实现GET请求,而CORS支持所有类型的HTTP请求. 2. 使用CORS,开发者可以使用普通的XMLHttpRequest发起请求和获得

XMLHttpRequest(ajax)跨域请求的优雅方法:CORS

浏览器的同源原则,使得 XMLHttpRequest 不能跨域通讯.为了实现跨域,有很多变态的做法.其中,比较优雅的是 JSONP 方案,但 JSONP 仅限于 GET 方法,其它方法无法实现. W3C在2009年的时候就出过一个标准,只要在响应头部使用 Access-Control-Allow-Origin 即可实现跨域通讯,例如: HTTP/1.1 200 OK Access-Control-Allow-Origin: * 当然,如果想要兼容古老的 IE8,还得找 JSONP 方案,或者去实

springMVC前后端分离开发模式下支持跨域请求

1.web.xml中添加cors规则支持(请修改包名) <filter> <filter-name>cors</filter-name> <filter-class>com...common.filter.SimpleCORSFilter</filter-class> </filter> <filter-mapping> <filter-name>cors</filter-name> <url

spring mvc支持跨域请求

@WebFilter(urlPatterns = "/*", filterName = "corsFilter") public class CorsFilter implements Filter { @Override public void destroy() { } @Override public void doFilter(ServletRequest req, ServletResponse rep, FilterChain chain) throws

SpringBoot多跨域请求的支持(JSONP)

在我们做项目的过程中,有可能会遇到跨域请求,所以需要我们自己组装支持跨域请求的JSONP数据,而在4.1版本以后的SpringMVC中,为我们提供了一个AbstractJsonpResponseBodyAdvice的类用来支持jsonp的数据(SpringBoot接收解析web请求是依赖于SpringMVC实现的).下面我们就看一下怎么用AbstractJsonpResponseBodyAdvice来支持跨域请求. 使用AbstractJsonpResponseBodyAdvice来支持跨域请求

AngularJS实现跨域请求

跨域,前端开发中常常遇到的问题.AngularJS实现跨域方式类似于Ajax.使用CORS机制. 以下阐述一下AngularJS中使用$http实现跨域请求数据. AngularJS XMLHttpRequest:$http用于读取远程server的数据 $http.post(url, data, [config]).success(function(){ ... }); $http.get(url, [config]).success(function(){ ... }); $http.get

jquery ajax GET POST 跨域请求实现

同一段逻辑代码需要在多个网站中使用, 每个网站都新建一个ashx真是扯蛋的作法,  所以想只请求一处的ashx, 这样便于维护和修改, 那么,ajax跨域问题就来了. 废话少说, 直接上代码,  我现在做的是GET请求的. POST请求同理. 首先整改ashx,加入支持跨域请求的代码. context.Response.ContentType = "text/plain"; string active = context.Request.QueryString["active

springboot跨域请求

首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 Java小组 工具资源 SpringBoot | 番外:使用小技巧合集 2018/09/17 | 分类: 基础技术 | 0 条评论 | 标签: spring boot 分享到: 原文出处: oKong 前言 最近工作比较忙,事情也比较多.加班回到家都十点多了,洗个澡就想睡觉了.所以为了不断更太多天,偷懒写个小技巧合集吧.之后有时间都会进行文章更新的.原创不易,码字不易,还希望大家多多支持!话不多说,开始今天的技巧合集吧~ 设置网站图标 原