过去,XMLHHttpRequest 仅限于同源通信。XMLHttpRequest Level 2 通过 CORS (Cross Origin Resource Sharing,跨源资源共享> 实现了跨源XMLHttpRequests。
跨源HTIP请求括一个Origin头部,它为服务器提供HTTP请求的源信息头部由浏览器保护,不能被应用程序代码更改。从本质上讲,它与跨文档消息通信中消息亊件的origin属 性作用相同。Origin头部不同于早先的Referer [Sic]头部,因为后者中的Referer是一个包括了 路径的完整URL。由于路径可能包含敏感信患,为了保护用户隐私,浏览器并不一定会发送 Refers,而浏览器在任何必要的时候都会发送Origin头部,
使用跨《XMLHttpRcquest可以构建基于非同源服务的Web应用程序,例如,如果Web应 用程序使用了一个海的静态文本和另一个源的Ajax服务,那么它可以偺助跨海XMLHttpRequest 请求实现在两个源之间的通信,如果没有跨源XMLHttpRequest则只能进行通信,而且部署方式也会受到限制?也许不得不将Web应用程序部署在一个单独域中或者再为其建立一个子域。
如图5*4所示,通过跨源XMLHttpRequest可以从客户端整合来自不同源的内容。如果目标服务器允许,可以使用用户证书访问受保护的内容,进而让用户直接访问个人的数据。反之,如果通过服务器端对不同源进行整合,则所有内容都要穿过一个服务器端的基础层。