美文网首页
在 AJAX 中开启 CROS

在 AJAX 中开启 CROS

作者: vivaxy | 来源:发表于2017-01-31 12:50 被阅读147次

    什么是 CROS

    cros 是 xhr 中的高级特性,支持跨域请求。

    服务端需要在响应头中添加下面的字段来支持其他域下发来的请求。

    除了不能在 IE 10 以下使用之外,都可以使用。

    Access-Control-Allow-Origin: *
    

    其中 * 可以是具体制定的域名。域名指的是页面所在的域。

    如何支持跨域传递 cookie ?

    如果只是开启了上面的跨域请求头的话,是不能传递 cookie 等信息的。

    服务端还需要添加另外一个字段:

    Access-Control-Allow-Credentials: true
    

    同时,客户端需要在 xhr 实例中添加参数:

    var xhr = new XMLHttpRequest();
    xhr.withCredentials = true;
    

    zepto 中添加请求设置

    return $.ajax({
        type: options.type || 'GET',
        url: options.url,
        data: options.data,
        xhrFields: {
            withCredentials: true
        },
        success: function (data, status, xhr) {
            // ...
        },
        error: function (xhr, errorType, error) {
            // ...
        }
    });
    

    参考

    相关文章

      网友评论

          本文标题:在 AJAX 中开启 CROS

          本文链接:https://www.haomeiwen.com/subject/hcqkittx.html