$.ajax的一些总结

Posted 银河系

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了$.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");

 

以上是关于$.ajax的一些总结的主要内容,如果未能解决你的问题,请参考以下文章

在学习AJAX时关于JSON有一些疑问总结

代码适用于与单个 html 文件不同的堆栈片段

AJAX调用完成后的消息提示框

Javascript代码片段在drupal中不起作用

是否有在单个活动中处理多个片段的 Android 设计模式?

BootStrap有用代码片段(持续总结)