Js设置前端允许跨域请求后端API:Access-Control-Allow-Credentials

跨域报错信息:
Console代码  收藏代码
Fetch API cannot load https://xxx.com/api. Response to preflight   
request doesn't pass access control check:   
The value of the 'Access-Control-Allow-Credentials' header   
in the response is '' which must be 'true'   
when the request's credentials mode is 'include'.   
Origin 'https://xxx.com' is therefore not allowed access.  
 

Method1:纯js
Js代码  收藏代码
export function Cors(url) {  
  return new Promise((resolve, reject) => {  
    const xhr = new XMLHttpRequest();  
    xhr.open('GET', url, true);  
    xhr.withCredentials = true; // 设置运行跨域操作  
    xhr.send();  
    xhr.onload = () => {  
      const text = xhr.responseText;  
      if (xhr.status === 200) {  
        resolve(JSON.parse(text));  
      } else {  
        let error = new Error(text);  
        error.response = xhr;  
        reject(error);  
      }  
    };  
  });  
}  
 

Methods2:jQuery版

Js代码  收藏代码
$.ajax({  
  url : 'xxx',  
  xhrFields: {  
    withCredentials: true // 设置运行跨域操作  
  },  
  success : function(data) {  
    console.log(data);  
  }  
});  
 

 

Methods3:fetch(部分浏览器不兼容,不建议使用)

Js代码  收藏代码
export function Get(url) {  
  const config = {  
    method: 'get',  
    headers: {  
      'Accept': 'application/json',  
      'Content-Type': 'application/json'  
    },  
    credentials: 'include'  
  };  
  return fetch(url, config)  
    .then(checkStatus)  
    .then(parseJSON);  
}  
 

Methods4: axios.js跨域:

Js代码  收藏代码
axios(url, {  
  method: 'GET',  
  mode: 'no-cors',  
  headers: {  
    'Access-Control-Allow-Origin': '*',  
    'Content-Type': 'application/json',  
  },  
  withCredentials: true,  
  credentials: 'same-origin',  
}).then(response => {  
})  

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值