ajax 跨域请求 session 保持一致

public function _initialize() { 
		header("Access-Control-Allow-Origin: *"); // 允许任意域名发起的跨域请求  
		header('Access-Control-Allow-Headers: X-Requested-With,X_Requested_With');
		header("Access-Control-Allow-Credentials: true");//是否支持cookie跨域
		if(isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] == 'OPTIONS'){
		    exit();
		}
}
$.ajax({
			url: ""+URL+"/user/work/sendmsg",
			type: "POST",
			data: {message: yh_message,tongxingma:tongxingma},
			dataType:"json",
			xhrFields: {
			withCredentials: true
			},
			crossDomain: true,
			// crossDomain: true,
			success: function(data){
			console.log(data);
			var data = JSON.parse(data);
			if(data.msg_code!=1){
			layer.msg(data.msg);
			repeat = false;//文件锁
			return;
			}
			}
		});

xhrFields: {

             withCredentials: true

        },

crossDomain: true, 

重点在这个 跨域请求

jQuery ajax中的参数含义

所有options均可选,下面简要说明每个option

1.async

默认为true,即请求为异步请求,这也是ajax存在的意义。但同时也可以将这个参数设置为false,实现同步请求。(同步请求会锁定浏览器,直到这个请求结束后才可以执行其他操作)

2.bforeSend(XHR)

这个方法是用来在发送请求前修改XMLHttpRequest对象的,若修改失败返回false,则取消此次ajax请求;

3.cache

默认为true,设置为false即不缓存。(当datatype为script或jasonp时默认为fasle)

4.complete(jqXHR,textStatus)

请求完成后的回调函数,无论成功与否。textStatus为一个描述请求类型的字符串,它可以有以下值success,notmodified,error,timeout,abort,parsererror。

5.contents

jQuery1.5添加。一个字符串或常规表达式的map,用来确定用何种方式处理jQuery的response。

6.contentType

它是发送到服务器的额数据的内容编码类型,它的默认值是"appliction/x-www-form-urlencoded"。传递的服务器的数据通常以UTF-8编码。

7.context

用来设置ajax回调函数的上下文。让回调函数中的this指向这个对象。

8.converters

jQuery1.5添加。一组数据类型到数据类型的转换。每一个转换值都是一个返回了response转换后的值的方法。

9.crossDomain

false表示同一域请求,true表示跨域请求。它可以使服务器端重定向到另外一个域。

10.data

发送到服务器的数据。必须为key/value格式。且自动转换为query string,get请求会将字符串附加在url后。

11.dataFilter(data,type)

将ajax的返回值进行预处理的函数,data为返回值,teype为传递的datatype参数。

12.dataType

预期服务器返回的数据类型。若没指定,则自动根据http包中的mime信息来判断。可用值为xml,html,script,json,jsonp,text。

13.error(jqXHR,textStatus,errorThrown)

当请求失败时调用这个方法。textStatus为错误信息,可用值为error,timeout,abort,parsererror。errorThrown为可选的要捕获的异常对象。

14.global

默认为true,触发全局ajax事件。设置为false可以用来不触发。可以用来控制不同的ajax事件。

15.headers

jQuery1.5添加。一个用于一起进行请求的额外的key/value对的map。这项需要在beforeSend方法被调用前设置,因为headers中的任意值都有肯那个在beforeSend方法中被覆盖。

16.ifModified

默认为false,仅在服务器数据改变时获取数据,使用http包中的Last-Modified头信息判断。

17.isLocal

jQuery1.5.1添加。允许将当前环境识别为local,jquery默认是不会识别的。file,*-extension 和widget协议可以被识别为local。如果isLocal需要被修改,推荐使用$.ajaxSetup()方法。

18.jsonp

重启jsonp请求中的回调函数名。这个值用来代替在“callback=?”这种请求中url参数里的callback部分。

19.jsonpCallback

为jsonp请求指定一个回调函数名。jquery会自动生成随机函数名,用这个值可以修改此名。

20.mimetype

jQuery1.5.1添加。可以用来覆盖XHR中的mimetype。

21.password

用于响应http访问认证请求的密码。

22.processData

默认为true。可以将data传递的数据类型进行修改用来匹配contenttype的类型。false则不修改。

23.scriptCharset

只有当请求为jsonp或script,并且type为get时才会用于强制修改charset。

24.statusCode

jQuery1.5添加。用来定义http的返回码对应的处理函数。下面的例子定义了返回404后的处理方法。

[javascript] view plaincopy

  1. $.ajax({   
  2.     statusCode: {   
  3.       404: function() {   
  4.            alert("page not found");   
  5.            }   
  6.       }   
  7. });  

25.success(data,textStatus,jqXHR)

请求成功后的回调函数。参数由服务器返回,并会根据datatype参数进行参数处理。

26.timeout

设置请求超时时间,毫秒为单位。此设置会覆盖全局设置,即所有ajax请求共享同一个超时时间。

27.traditional

设置为true,用传统的方式来序列化数据。

28.type

请求方式,get或post或put或delete。默认为get。put和delte不是得到所有的浏览器支持。

29.url

发送请求的地址。为空表示当前页。

30.username

用于响应http访问认证请求的用户名。同password配对。

31.xhr

默认在ie下是ActiveXObject而其他浏览器是XMLHttpRequest。用于重写或提供一个增强的XMLHttpRequest对象。

32.xhrFields

jQuery1.5.1添加。它可以添加到原生xhr对象上的key/value对。举个例子,你可以通过它来设置跨域的withCredentials为true。

[javascript] view plaincopy

  1. $.ajax({   
  2.     url: a_cross_domain_url,   
  3.     xhrFields: {   
  4.     withCredentials: true   
  5.     }   
  6. });  

猜你喜欢

转载自blog.csdn.net/joker6295/article/details/83303612