龙空技术网

一篇文章读懂跨域资源共享 CORS

三僡然 144

前言:

今天兄弟们对“ie设置跨域允许访问的资源”大体比较注重,大家都想要分析一些“ie设置跨域允许访问的资源”的相关资讯。那么小编也在网上网罗了一些对于“ie设置跨域允许访问的资源””的相关文章,希望各位老铁们能喜欢,大家快快来学习一下吧!

CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。

简介

什么情况使用CORS呢?当有跨域需求是如果并且您需要支持IE <= 9,Opera <12或Firefox <3.5或其他各种较旧或模糊的浏览器,就使用JSONP否则就是用CROS。IE8和IE9 sorta支持CORS但有问题。如果有跨域写的操作就只能只用CORS因为JSONP本质是只读的。

跨域是如何发生的

当资源从不同的域或端口请求资源时,资源会发出跨源HTTP请求,而不是第一个资源本身所服务的资源。

如图所示一个HTML页面从供应;img>对SRC请求。

出于安全原因,浏览器会限制从脚本中发起的跨源HTTP请求。 例如,并遵循同源策略。 因此,Web应用程序使用或只能使HTTP请求以自己的域。

跨源资源共享(CORS)

为了改进Web应用程序,开发人员要求浏览器供应商允许跨域请求。所述跨来源资源共享(CORS)机制给出web服务器跨域的访问控制,这使安全跨域数据传送。现代浏览器在API容器中使用CORS(例如或- )以降低跨源HTTP请求的风险。

CORS的工作原理

CORS标准描述了新的HTTP标头,它为浏览器和服务器提供了一种仅在有权限时才能请求远程URL的方法。尽管服务器可以执行某些验证和授权,但浏览器通常负责支持这些标头并遵守它们所施加的限制。

浏览器OPTIONS使用Origin HTTP标头发送请求。此标头的值是为父页面提供服务的域。当尝试访问用户数据的页面时service.example.com,以下请求标头将被发送到service.example.com:来源:http://服务器at service.example.com可以响应:Access-Control-Allow-Origin其响应中的(ACAO)标头指示允许哪些源站点。例如:Access-Control-Allow-Origin: 如果服务器不允许跨源请求,则为错误页面Access-Control-Allow-Origin带有通配符的(ACAO)标头,允许所有域:Access-Control-Allow-Origin: *附带身份凭证的请求与通配符

对于附带身份凭证的请求,服务器不得设置 Access-Control-Allow-Origin 的值为“*”。

这是因为请求的首部中携带了 Cookie 信息,如果 Access-Control-Allow-Origin 的值为“*”,请求将会失败。而将 Access-Control-Allow-Origin 的值设置为 ,则请求将成功执行。

另外,响应首部中也携带了 Set-Cookie 字段,尝试对 Cookie 进行修改。如果操作失败,将会抛出异常。

参考资料

本文版权归是三僡然所有,转载请标明出处。欢迎转载,欢迎评论,欢迎分享。如果你有文章想分享可以联系我。

标签: #ie设置跨域允许访问的资源