跨域的方法

一、在scr文件下新建utils,并新建request.js和storage.js

request.js

// 第一步引入axios 
import axios from "axios"
// 第二步引入qs
import qs from "qs"

import storage from "@/utils/storage"

// 第三步 配置根路径 和 超时时间
let newAxios = axios.create({
    baseURL: process.env.VUE_APP_BASE_API,
    timeout: 10000,
})

// 第四步:
// 配置拦截器
// 添加请求拦截器
newAxios.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    let token = storage.get("sell_token")
    if (token) {
        config.headers.Authorization = token
    }
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
newAxios.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    // 响应拦截
    //将返回的数据过滤 留下有用的数据返回
    return response.data;
}, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
});


//第五步:
// 封装方法解决 method对应的传值问题
// 因为这个方法需要将axios返回给别人用
function request(url, method, aaa) {

    return newAxios({
        url,
        method,
        data: method == "post" ? qs.stringify(aaa) : '',
        params: method == "get" ? aaa : ''

    })
}
// 请求有四种
// post登录 / 注册
// get 列表
// delete 删除
// put  修改
// 第六步
function post(url, aaa) {

    return request(url, "post", aaa)
}
function get(url, aaa) {

    return request(url, "get", aaa)
}

// 第七步暴露
export default {
    post,
    get
}

storage.js

//定义一个变量
const storage = window.localStorage
// 设置值
function set(key, value) {
    // JSON.stringify(value) 将value值变成字符串模式
    // 因为本地或者回话存储空间是有限的
    storage.setItem(key, JSON.stringify(value))
}
// 获取值
function get(key) {
    // JSON.parse(storage.getItem(key)) 在获取的时候需要解开
    return JSON.parse(storage.getItem(key))
}
// 清空
function clear() {
    storage.clear()
}
// 清除一个
function remove(key) {
    storage.removeItem(key)
}

// 判断 
function isKey(key) {
    return storage.getItem(key) ? true : false
}


export default {
    set,
    get,
    clear,
    remove,
    isKey
}

二、在scr同级添加

.env.development


# 开发环境配置
ENV = 'development'
 
#设置端口号
port=8080
 
# 前端请求路径
VUE_APP_BASE_API = '/api'
 
# #后端服务器地址不要忘记添加http或https
# BASE_URL_REAR='http://127.0.0.1:8080/'

.env.production

# just a flag
ENV = 'production'

# base api
VUE_APP_BASE_API = 'http://127.0.0.1:8080'

.env.test

ENV = 'test'
NODE_ENV='test'

三、scr同级添加

vue.config.js


module.exports = {
    devServer: {
        // 默认值 为localhost 127.0.0.1
        // 端口默认为8080
        // host: "localhost",
        // port: "8080",
        // 默认有的
        proxy: {
            "/api": { // 配置你要让那些路径要跨域
                // 你可以让该路径前面添加api
                // login
                // 是后台路径
                target: "http://119.23.246.178:6000", // 38
                // true 代表跨域
                changOrigin: true,
                pathRewrite: { //忽略api ,将api变成空格
                    "^/api": ""
                }
            }
        }
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值