跨域要求POST解决方案

来源于:阿贤博客

跨域要求POST解决方案

cookie平常情况下是没法跨域的,以至POST要求平常情况下都是没法跨域的。

    //     要求代码示例
    $.ajax({
        url: url,
        type: "POST",
        data: metadata,
        dataType: 'json',
        xhrFields: {  
            withCredentials: true  
        },  
        crossDomain: true,
        success: function(){},
        error: function(){}
    });
  • 1、默许情况下,ajax(XMLHttpRequest()对象和ie下Microsoft.XMLHTTP对象)受制于同源战略是不许可跨域要求。
  • 2、jsonp的跨域是应用页面动态增加script标签来援用跨域资本来避开这个限定,但没有post要领

解决要领:服务器端设置,许可ajax要求跨域

    ##     服务端设置许可跨域代码,eg:
    header("Access-Control-Allow-Credentials: true");

    header("Access-Control-Allow-Origin: http://www.xxx.com");

    ## 设置胜利后,在接口要求的Response Headers会看到一下以下许可逾越信息
    {
        Access-Control-Allow-Credentials:true
        Access-Control-Allow-Headers:x-requested-with,content-type
        Access-Control-Allow-Methods:POST
        Access-Control-Allow-Origin:http://www.aipai.com
    }

cookies的跨域解决方案

ajax跨域要求题目解决了,但当后端须要经由过程接口猎取cookies时,一样存在cookies的跨域题目

cookies的跨域解决要领:在要求中增加以下参数,要求头信息便会附带cookies信息

    // 代码
    $.ajax({
        ...
        xhrFields: {  
            withCredentials: true  
        },
        ...
    });

来源于:阿贤博客

    原文作者:chenwenxian
    原文地址: https://segmentfault.com/a/1190000018759229
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞