`
ezzze
  • 浏览: 42126 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

jsonp VS W3C 的Cross-Origin Resource Sharing

阅读更多
才看到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/
1
0
分享到:
评论
1 楼 巴巴米 2013-10-10  
最后一段是精华。。。

相关推荐

    Allow-Control-Allow-Origin谷歌跨域插件

    标题中的"Allow-Control-Allow-Origin"是HTTP响应头的一部分,用于定义Web服务器允许哪些源(Origin)访问其资源,这是处理跨域资源共享(CORS - Cross-Origin Resource Sharing)的关键机制。跨域请求通常在浏览器...

    cross-request-3.0-master.zip

    1. CORS(Cross-Origin Resource Sharing,跨源资源共享):这是一种W3C标准,通过在服务器端设置特定的HTTP响应头,允许浏览器在跨域请求时进行权限判断,从而实现跨域资源访问。 2. JSONP(JSON with Padding):...

    跨域请求资源-jsonp和cors区别.pdf

    - **CORS**(Cross-Origin Resource Sharing,跨源资源共享)是一个W3C标准,用于定义服务器如何响应来自不同源的HTTP请求。 - CORS由服务器端配置完成,主要通过HTTP头部中的`Access-Control-Allow-Origin`字段来...

    跨域jar包2.rar

    CORS(Cross-Origin Resource Sharing)是一种W3C标准,允许服务器声明哪些源可以访问其资源。在Tomcat中,可以通过添加这个Filter来实现跨域。首先,将jar包部署到Tomcat的lib目录下,然后在web应用的WEB-INF/web....

    跨域恳求的完善解决方法(JSONP, CORS)_.docx

    CORS(Cross-Origin Resource Sharing,跨域资源共享)是W3C标准中定义的一种机制,允许浏览器与服务器通过HTTP头部协商,实现跨域请求。相比JSONP,CORS提供了更全面的安全性和灵活性。 ##### 3.2 CORS的工作原理 ...

    扩展ServiceBase类解决Ajax跨域问题

    当涉及到Ajax跨域时,我们通常采用CORS(Cross-Origin Resource Sharing,跨源资源共享)机制。CORS是一种W3C标准,允许浏览器和服务器之间进行跨域通信。服务器通过设置特定的HTTP响应头,如`Access-Control-Allow-...

    跨域demo.rar

    - **CORS(Cross-Origin Resource Sharing)**:为了解决跨域限制,W3C提出了CORS机制,允许服务器指定哪些源可以访问其资源。 2. **跨域问题的表现** - XMLHttpRequest或fetch等API在非同源请求时,浏览器会阻止...

    跨域资源那些事.pdf

    跨域资源分享(Cross-Origin Resource Sharing,简称CORS)是Web开发中解决浏览器同源策略限制的一种机制。同源策略是浏览器内置的安全措施,限制了来自不同源的“脚本”对网页内容的访问,以防止恶意代码窃取数据。...

    js实现跨域的几种方法汇总(图片ping、JSONP和CORS)

    跨域资源共享(Cross-Origin Resource Sharing, CORS)是互联网中一种安全机制,用于定义网页安全策略以及客户端与服务器之间数据交互的权限。浏览器安全的同源策略限制了不同源之间交互,但随着Web应用的复杂性增加...

    前端后端+跨域请求+java/js

    解决跨域问题有多种方法,其中最常见的是使用CORS(Cross-Origin Resource Sharing,跨源资源共享)。CORS是W3C标准,允许服务器指定哪些来源的请求可以访问其资源。在Java后端,可以通过设置`Access-Control-Allow-...

    api跨域_API_

    2. CORS(Cross-Origin Resource Sharing):为了解决同源策略带来的问题,W3C 提出了 CORS 标准,允许服务器指定哪些来源的请求可以访问其资源。 三、API 跨域的解决方案 1. JSONP(JSON with Padding):这是一...

    跨域使用的jar包及tomcat设置

    为了解决这个问题,我们可以采用一些技术手段,如CORS(Cross-Origin Resource Sharing)和JSONP。本篇将详细介绍支持跨域使用的jar包以及如何设置跨域的Tomcat服务器。 一、CORS(跨源资源共享) CORS是一种W3C...

    jquery跨域调用 js跨域调用

    jQuery跨域调用主要是通过JSONP(JSON with Padding)和CORS(Cross-Origin Resource Sharing)这两种机制来实现的。JSONP是一种非官方的跨域数据交互协议,而CORS是W3C标准,允许服务器声明哪些来源可以访问其资源...

    tomcat解决跨越问题

    CORS(Cross-Origin Resource Sharing)是一种W3C标准,通过在服务器端设置特定的HTTP响应头,允许浏览器跨域访问资源。在Tomcat中,我们可以使用CORS Filter来实现这一功能。 - 首先,下载CORS Filter的JAR文件...

    MVC+WebAPI跨域调用.rar

    1. **CORS(Cross-Origin Resource Sharing)**:这是一种W3C标准,服务器通过设置特定的HTTP响应头(如`Access-Control-Allow-Origin`)来允许特定的跨域请求。在这个例子中,WebAPI需要配置以允许来自特定域的...

    跨域获取其他网站rss信息

    1. **CORS(Cross-Origin Resource Sharing)**:这是一种W3C标准,允许浏览器通过添加特定的HTTP头部来允许跨域请求。在ASP.NET中,可以通过设置`HttpContext.Current.Response.AddHeader("Access-Control-Allow-...

    什么是跨域?跨域解决方法.docx

    4. CORS(Cross-Origin Resource Sharing),是跨域资源共享的缩写,是 W3C 标准,属于跨源 AJAX 请求的根本解决方法。 六、设置 document.domain 解决无法读取非同源网页的 Cookie 问题 可以通过设置相同的 ...

Global site tag (gtag.js) - Google Analytics