• 前端解决No 'AccessControlAllowOrigin'


     在请求的header中加上:
    Access-Control-Allow-Origin=*

    如下:

    axios.defaults.headers.post['Access-Control-Allow-Origin']='*';
    import axios from "axios";
    import router from "../router";  //导入axios
    axios.defaults.timeout = 5000;  //设置前台访问后台的超时时间为5000毫秒,即5秒
    axios.defaults.withCredentials = true;  //允许跨域
    //Content-type 响应头
    axios.defaults.headers.post['Content-type']='application/x-www-form-urlencoded;charset=UTF-8';
    axios.defaults.headers.post['Access-Control-Allow-Origin']='*';
    //基础url
    axios.defaults.baseURL="http://localhost:8888";
    
    //响应拦截器
    axios.interceptors.response.use(
        response =>{
            //如果response里面的status是200,说明访问到接口了,否则错误
            if(response.status==200){
                return  Promise.resolve(response);  //Promise.resolve,执行成功
            }else{
                return Promise.reject(response);  //Promise.reject,执行失败
            }
        },
    
        error=>{
            if(error.response.status){
                switch (error.response.status) {
                    case 401:  //未登录
                        router.replace({  //router.replace(),替换到当前的历史
                                path:'/',
                                query:{
                                    redirect:router.currentRoute.fullPath
                                }
                        });
                        break;  //退出
                    case 404:  //没找到
                        break;
    
                }
                return Promise.reject(error.response);   //返回执行失败
            }
        }
    
    );  //整个拦截的过程
    
    /*
    * 封装get方法
    * */
    export function get(url,params={}) {
        return new Promise(
            //一个正常的结果,一个异常的结果
            (resolve,reject) =>{
                axios.get(url,{params:params})
                    .then(response=>{
                        resolve(response.data);   //正常的,返回响应数据
                    })
                    .catch(
                        err =>{
                            reject(err);  //异常的,返回一个错误信息
                        }
                    )
            }
        );
    
    }
    
    /*
    * 封装一个post方法
    * */
    export function post(url,data={}) {
        return new Promise(
            //一个正常的结果,一个异常的结果
            (resolve,reject) =>{
                axios.post(url,data)
                    .then(response=>{
                        resolve(response.data);   //正常的,返回响应数据
                    })
                    .catch(
                        err =>{
                            reject(err);  //异常的,返回一个错误信息
                        }
                    )
            }
        );
    
    }
  • 相关阅读:
    asp.net AD 域验证
    ASP.NET身份验证
    .Net默认IE版本号的两种方式
    (转)移动端自适应方案
    (转)手机web——自适应网页设计(html/css控制)
    (转)优雅降级和渐进增强的区别
    (转)hasLayout与BFC的触发条件
    (转)js中几种实用的跨域方法原理详解
    (转)js实现继承的5种方式
    (转)js 判断各种数据类型
  • 原文地址:https://www.cnblogs.com/jingzaixin/p/16534955.html
Copyright © 2020-2023  润新知