当前位置:首页 > 技术积累 > 正文内容

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

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

        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
});


扫描二维码推送至手机访问。

版权声明:本文由久爱编程网发布,如需转载请注明出处。

本文链接:https://www.9icode.com/index.php/post/14.html

标签: ITAjaxCookie
分享给朋友:

“如何解决Cookie和Ajax的跨域问题” 的相关文章

在线支付子模块的设计与实现

在线支付子模块的设计与实现

        一个在线交易系统需要各种支付方式方便客户付款,这些支付方式按场景可分为在线支付和线下现付。线下现付常见的有货到付款、邮局汇款、银行电汇等非实时方...

jQuery AJAX跨域在IE9及以下版本中失效问题

jQuery AJAX跨域在IE9及以下版本中失效问题

        使用jQuery AJAX在IE9及以下版本浏览器中提交HTTP跨域请求时,浏览器会报错且并不执行该操作,是因为IE9及以下版本默认不支持跨域请...

IIS中使用PHP-CGI报500错误问题可能原因

IIS中使用PHP-CGI报500错误问题可能原因

        在IIS中使用CGI方式运行PHP网站突然报500服务器错误,需要判断当前系统的软件环境有何变化去一一排查,通常可能的原因有:(1)PHP程序因...

ASP.NET中报“无法在已发送HTTP标头之后进行重定向”异常问题解决

ASP.NET中报“无法在已发送HTTP标头之后进行重定向”异常问题解决

        ASP.NET中报“无法在已发送HTTP标头之后进行重定向”异常时,其中一个原因是:在已经重定向后又重定向。在ASP.NET中实现重定向有以下几...

ASP.NET中报“无法在已发送HTTP标头之后设置状态”异常问题解决

ASP.NET中报“无法在已发送HTTP标头之后设置状态”异常问题解决

        ASP.NET中报“无法在已发送HTTP标头之后设置状态”异常,是因为设置Response的StatusCode之前,程序已设置响应标头。可从以...

ASP.NET网站自定义错误处理及其它安全相关

ASP.NET网站自定义错误处理及其它安全相关

        ASP.NET网站在运行过程中总是有可能报错,例如404等HTTP错误、500等程序异常。在IIS托管并报错的情况下,网站的默认行为依次是:(1).NET运行时接收并处理的部分显示.N...

发表评论

访客

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