ajax跨域,设置session

贴代码

public function _initialize(){
header("Access-Control-Allow-Origin: *");
header(‘Access-Control-Allow-Headers:x-requested-with,content-type,token,version,shopId,client‘);
$this->initSession();
}

public function initSession() {
$rqh = requestHeader();
$data = getData();
if($rqh[‘token‘]){
//登录状态的初始化
session_id($rqh[‘token‘]);
session_start();
}else if($data[‘code_token‘]){
//手机验证码初始化
session_id($data[‘code_token‘]);
session_start();
}else if(in_array(CONTROLLER_NAME.‘/‘.ACTION_NAME,$this->startSessionByHand)){
//登录情况再手动开启session
}else{
session_start();
}

}

// 指定允许其他域名访问
header(‘Access-Control-Allow-Origin:*‘);
// 响应类型
header(‘Access-Control-Allow-Methods:POST‘);
// 响应头设置
header(‘Access-Control-Allow-Headers:x-requested-with,content-type‘);

原文地址:https://www.cnblogs.com/Meke/p/9804372.html

时间: 2024-10-11 05:05:15

ajax跨域,设置session的相关文章

jquery中ajax跨域设置http header

一.ajax请求,没有跨域,有设置http header头部 $.ajax({ type: "post", url:"http://abc.cc/qrcode3/index.php/home/index/testpost", dataType: "json" data: {"value":"{$encodeString}"}, // headers : {'Authorization':'Base bmVv

Ajax跨域设置Access-Control-Allow-Origin

传统的跨域请求没有好的解决方案,无非就是jsonp和iframe,随着跨域请求的应用越来越多,W3C提供了跨域请求的标准方案(Cross-Origin Resource Sharing).IE8.Firefox 3.5 及其以后的版本.Chrome浏览器.Safari 4 等已经实现了 Cross-Origin Resource Sharing 规范,实现了跨域请求. 在服务器响应客户端的时候,带上Access-Control-Allow-Origin头信息. Ajax跨域问题: 解决方法: r

express解决ajax跨域访问session失效问题

最近在学习express,就用以前做的项目来进行express前后端分离的练手了,在做登陆注册的时候发现跨域的时候,session的值是会失效的,导致session里面的数据获取为undefined,网上找资料加上自己的不断尝试,终于找到了解决方法,简单记录一下解决方法. 1.客户端因为session原则上是需要cookie支持的,所以Ajax方法里面必须添加 xhrFields:{withCredentials:true},表示允许带Cookie的跨域Ajax请求( 特别说明,只要使用的ses

前后端分离 ajax 跨域 session 传值 (后端使用 node)

前端:ajax访问时要加上"xhrFields: {withCredentials: true}" ,实现session可以传递 后端:Access-Control-Allow-Credentials 设置为 true:同时 Access-Control-Allow-Origin 必须指定 url npm 安装 express.body-parser.express-session.svg-captcha 后台代码: 1 var express = require('express')

用iframe设置代理解决ajax跨域请求问题

面对ajax跨域请求的问题,想用代理的方式来解决这个跨域问题.在服务器端创建一个静态的代理页面,在客户端用iframe调用这个代理 今天在项目中需要做远程数据加载并渲染页面,直到开发阶段才意识到ajax跨域请求的问题.于是想用代理的方式来解决这个跨域问题. 什么是跨域?简单的来说,出于安全方面的考虑,页面中的JavaScript无法访问其他服务器上的数据,即"同源策略".而跨域就是通过某些手段来绕过同源策略限制,实现不同服务器之间通信的效果. 方案:在服务器端创建一个静态的代理页面,在

Ajax跨域Session和跨域访问

一.关于ajax跨域请求,用jsonp老是不成功,虽然可以返回数据,但是error处报错.原因是返回的数据格式不是jsonp格式.但是用C#构造的请求却能够返回数据. 二.第三方的ajax请求肯定是不能获取得到你当前用户的session. 任务是这样的的,支付宝的页面返回notify页面(这个页面是异步访问的),而我的C#处理有一个处理模块,需要判断如果是已经登录则加积分之类的操作,结果老是获取不到session数据,可是明明登录了啊.这里的误区是,我们当前域肯定是已经登录了,可对于支付宝那边的

AJAX是什么? AJAX的交互模型(流程)?同步和异步的区别? AJAX跨域的解决办法?

ajax是异步的 JavaScript 和 XML.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. 交互流程: 1--启动  获取XMlHttpRequest对象             2--open 打开url通道,并设置异步传输              3--send 发送数据到服务器             4--服务器接受数据并处理,处理完成后返回结果              5--客户端接收

ajax跨域请求--jsonp实例

ajax请求代码: //区域事件选择配送点 function changeDistrict(value){ if(value == 0){ $('#transport_node').empty(); $('#transport_node').append('<option value="0">请选择</option>'); return; } $('#transport_node').empty(); $('#transport_node').append('&

ajax 跨域无法携带cookie 解决办法

ajax 跨域无法携带cookie,需要用到session,终于完美结局 xhrFields: { withCredentials: true }, 添加这个可能是大家都会做的一件事 但是添加上了之后就出现了另外一个问题 The 'Access-Control-Allow-Origin' header contains the invalid value 'Origin'. Origin ...... 2.服务器server端要配置Access-Control-Allow-Credentials

AJAX跨域

AJAX跨域AJAX不允许跨域访问. 跨域是指浏览器B显示的是服务器S1的数据,全是从S1取得的数据则是同域:但如果B显示的S1上的数据的某个比如img是从S2上取得的数据,则是跨域.端口不一样也是跨域.跨域不仅是跨服务器,还是跨IP,跨端口. AJAX通过三种方法,可以解决跨域问题. 1.设置请求头,每一个路径里都要设置,可以封装成方法方便调用.       res.setHeader("Access-Control-Allow-Origin","*");