如何解决Cookie和Ajax的跨域问题

竹林之风6年前 (2016-03-24)技术积累2092

        Cookie用来在浏览器端保存小文本信息,它的属性Domain和Path用来标识该Cookie在什么域和什么路径下有效。要使Cookie跨域如何实现?若是在同一顶级域名下实现各子域名跨域,可以设置Cookie的Domain,假设顶级域名是example.com,则设置Cookie.Domain=".example.com"即可。那不同顶级域名之间如何跨域呢?为各顶级域名生成一个相同名和值的Cookie、JSONP调研、SSO单点登录等。

        众所周知Ajax调用默认也只能在同域下,即浏览器的同域策略。要实现Ajax跨域同样可以采用JSONP以及代理方式,另一方法是HTML5中的XHR2。服务端设置如下HTTP头:

context.Response.AppendHeader("Access-Control-Allow-Credentials", "true");//允许携带Cookie等凭证
context.Response.AppendHeader("Access-Control-Allow-Origin", "*");//允许所有来源域

而在JS端以Jquery为例如下设置:

$.ajaxSetup({
    xhrFields: {
        //携带Cookie等凭证
        withCredentials: true
    },
    //允许跨域
    crossDomain: true
});


标签: ITAjaxCookie

相关文章

AJAX网页如何实现SEO友好

        在WEB网页上应用AJAX技术可以提高用户体验,但是对于SEO却不够友好,因为搜索引擎不会执行JS,而A...

关于学习IT新技术的一点看法

        IT技术的确是日新月异、更新迅猛,学习IT的人得坚持学习、积极跟进IT技术的步伐。可能一个人刚掌握一门技...

没有新的东西,只有新的组合!

        曾经在一本书上看到这样一句:没有新的东西,只有新的组合!思量万千,不无道...

小试Git源码版本控制

        我们一个人开发或维护一个项目的时候,一般项目源码放在自己的电脑上就可以了;当加入新成员和我们一起开发或维...

HTTP长连接与短连接、长轮询与短轮询及长轮询的实现概述

        HTTP长连接(long connection)与短连接(short connection)本质上是TCP长连接和短连接:短连接是指在一次HTT...

浅谈API接口

        API接口作为面向外部系统的门户,其背后是数据,用于隔离系统与数据,方便各异构系统整合与交互。不同系统之...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法和观点。