才看到W3C的cross original resource sharing,又多了一种跨域的选择.
(官方的跨域解决出现了,看了下文档时间貌似很久了...我果然很out)
那和民间标准jsonp 比有啥优势呢:
1.支持多种http方法
jsonp一般只支持get方法。
而w3c的cross orginal resouce sharing 支持http的其他几种方法,例如put,delete...
2.简单
对于服务端来说,设置一个response head 就能搞定W3C CORS,
Access-Control-Allow-Origin: http://your site
检查下origin就可以选择是否要返回response.
而对于jsonp来说,要进行安全检查
3.安全
这个就不废话了,jsonp就是script注入,跨站攻击一般都会考虑....
劣势:
这玩意儿要看浏览器颜色,和HTML5一样 不是谁都可以用的........
----------------------------------------------------------------------
W3C CORS客户端实现
只搞了FF的,IE的貌似是XDomainRequest.....下次补上
var XCOS = function(type,url){
var xhr = new XMLHttpRequest();
if (xhr && "withCredentials" in xhr){
xhr.open(type, url, true);
}
else xhr = null;
var success = function(msg,obj){
alert(msg);
};
var error = function(obj){
alert("error");
};
var handle_load = function (event_type) {
return function (XHRobj) {
if (event_type == 'load' && (XHRobj.readyState == 4) && success)
success(XHRobj.responseText, XHRobj);
else if (error)
error(XHRobj);
};
};
try {
xhr.withCredentials = true;
} catch(e) {};
xhr.onload = function (e) { handle_load('load')(e.target); };
xhr.onerror = function (e) { handle_load('error')(e.target); };
xhr.send();
};
W3C 服务端代码:
response.setHeader("Access-Control-Allow-Origin","xyz")
response.setHeader("Access-Control-Allow-Methods","get")
最后 我承认以下写的比我好多了
http://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors
http://www.w3.org/TR/cors/
分享到:
相关推荐
标题中的"Allow-Control-Allow-Origin"是HTTP响应头的一部分,用于定义Web服务器允许哪些源(Origin)访问其资源,这是处理跨域资源共享(CORS - Cross-Origin Resource Sharing)的关键机制。跨域请求通常在浏览器...
1. CORS(Cross-Origin Resource Sharing,跨源资源共享):这是一种W3C标准,通过在服务器端设置特定的HTTP响应头,允许浏览器在跨域请求时进行权限判断,从而实现跨域资源访问。 2. JSONP(JSON with Padding):...
- **CORS**(Cross-Origin Resource Sharing,跨源资源共享)是一个W3C标准,用于定义服务器如何响应来自不同源的HTTP请求。 - CORS由服务器端配置完成,主要通过HTTP头部中的`Access-Control-Allow-Origin`字段来...
CORS(Cross-Origin Resource Sharing)是一种W3C标准,允许服务器声明哪些源可以访问其资源。在Tomcat中,可以通过添加这个Filter来实现跨域。首先,将jar包部署到Tomcat的lib目录下,然后在web应用的WEB-INF/web....
为了解决这个问题,我们可以采用一些技术手段,如CORS(Cross-Origin Resource Sharing)和JSONP。本篇将详细介绍支持跨域使用的jar包以及如何设置跨域的Tomcat服务器。 一、CORS(跨源资源共享) CORS是一种W3C...
CORS(Cross-Origin Resource Sharing,跨域资源共享)是W3C标准中定义的一种机制,允许浏览器与服务器通过HTTP头部协商,实现跨域请求。相比JSONP,CORS提供了更全面的安全性和灵活性。 ##### 3.2 CORS的工作原理 ...
当涉及到Ajax跨域时,我们通常采用CORS(Cross-Origin Resource Sharing,跨源资源共享)机制。CORS是一种W3C标准,允许浏览器和服务器之间进行跨域通信。服务器通过设置特定的HTTP响应头,如`Access-Control-Allow-...
- **CORS(Cross-Origin Resource Sharing)**:为了解决跨域限制,W3C提出了CORS机制,允许服务器指定哪些源可以访问其资源。 2. **跨域问题的表现** - XMLHttpRequest或fetch等API在非同源请求时,浏览器会阻止...
跨域资源分享(Cross-Origin Resource Sharing,简称CORS)是Web开发中解决浏览器同源策略限制的一种机制。同源策略是浏览器内置的安全措施,限制了来自不同源的“脚本”对网页内容的访问,以防止恶意代码窃取数据。...
跨域资源共享(Cross-Origin Resource Sharing, CORS)是互联网中一种安全机制,用于定义网页安全策略以及客户端与服务器之间数据交互的权限。浏览器安全的同源策略限制了不同源之间交互,但随着Web应用的复杂性增加...
解决跨域问题有多种方法,其中最常见的是使用CORS(Cross-Origin Resource Sharing,跨源资源共享)。CORS是W3C标准,允许服务器指定哪些来源的请求可以访问其资源。在Java后端,可以通过设置`Access-Control-Allow-...
2. CORS(Cross-Origin Resource Sharing):为了解决同源策略带来的问题,W3C 提出了 CORS 标准,允许服务器指定哪些来源的请求可以访问其资源。 三、API 跨域的解决方案 1. JSONP(JSON with Padding):这是一...
jQuery跨域调用主要是通过JSONP(JSON with Padding)和CORS(Cross-Origin Resource Sharing)这两种机制来实现的。JSONP是一种非官方的跨域数据交互协议,而CORS是W3C标准,允许服务器声明哪些来源可以访问其资源...
CORS(Cross-Origin Resource Sharing)是一种W3C标准,通过在服务器端设置特定的HTTP响应头,允许浏览器跨域访问资源。在Tomcat中,我们可以使用CORS Filter来实现这一功能。 - 首先,下载CORS Filter的JAR文件...
1. **CORS(Cross-Origin Resource Sharing)**:这是一种W3C标准,服务器通过设置特定的HTTP响应头(如`Access-Control-Allow-Origin`)来允许特定的跨域请求。在这个例子中,WebAPI需要配置以允许来自特定域的...
1. **CORS(Cross-Origin Resource Sharing)**:这是一种W3C标准,允许浏览器通过添加特定的HTTP头部来允许跨域请求。在ASP.NET中,可以通过设置`HttpContext.Current.Response.AddHeader("Access-Control-Allow-...
4. CORS(Cross-Origin Resource Sharing),是跨域资源共享的缩写,是 W3C 标准,属于跨源 AJAX 请求的根本解决方法。 六、设置 document.domain 解决无法读取非同源网页的 Cookie 问题 可以通过设置相同的 ...