过去,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可以从客户端整合来自不同源的内容。如果目标服务器允许,可以使用用户证书访问受保护的内容,进而让用户直接访问个人的数据。反之,如果通过服务器端对不同源进行整合,则所有内容都要穿过一个服务器端的基础层。