$.ajax的一些总结

1.$.ajaxSetup()函数来全局设置
    $.ajaxSetup({
      url: "/xmlhttp/",
      global: false,
      type: "POST"
    });
    $.ajax({ data: myData });
 所有的ajax请求都共享ajaxSetup里设置的参数;
2.禁止使用缓存  cache:false;
3.同步请求
 var html = $.ajax({
  url: "some.php",
  async: false
 }).responseText;
4.beforeSend事件  在发送请求之前触发,可以修改ajax对象参数,如果return false,本次请求取消;
5.context   可以指定一个DOM元素,在回调函数里边this就指向那个DOM元素;
6.crossDomain   同域请求为false,跨域请求为true,如果你想强制跨域请求(如JSONP形式)同一域,设置crossDomain为true。这使得例如,服务器端重定向到另一个域
7.statusCode      一组数值的HTTP代码和函数对象,当响应时调用了相应的代码。例如,如果响应状态是404,将触发以下警报:
    $.ajax({
      statusCode: {404: function() {
        alert(‘page not found‘);
      }
    });
8.processData   如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。

Ajax跨域请求COOKIE无法带上的解决办法

原生ajax请求方式:
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://xxxx.com/demo/b/index.php", true);
xhr.withCredentials = true; //支持跨域发送cookies
xhr.send();
jquery的ajax的post方法请求:
 $.ajax({
                    type: "POST",
                    url: "http://xxx.com/api/test",
                    dataType: ‘jsonp‘,
                    xhrFields: {
                        //支持跨域发送cookies
                        withCredentials: true
                    },
                    //强制跨域请求
                    crossDomain: true,
                    success: function () {
                    },
                    error: function () {
                    }
                })
服务器端设置:
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Origin: http://www.xxx.com");
时间: 2024-10-29 19:11:08