每天一个报错,个各不相同。

看见下面的这行报错是不是感觉跟熟悉?

没错,vue的跨域问题,记录一下我的解决方法并分享给大家 ~ . ~

Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

那就直接上代码?

module.exports = {devServer: {open: true, //自动打开浏览器host: 'localhost',port: 8080,https: false,//以上的ip和端口是我们本机的;下面为需要跨域的proxy: {//配置跨域'/api': {target: 'http://11111111111.com',//填写你们真实的后台接口ws: true,changOrigin: true,//允许跨域pathRewrite: {'^/api': ''//请求的时候使用这个api就可以}}}}
}

我的vue文件中没有config文件夹,所以新建了个vue.config.js文件,放在根路径就好。

需要跨域的页面

mounted(){this.job()},methods:{job(){post("/api/index.php/user/index/postList",{  //这个里面的写路径的后面一部分,前面记得加上/apitoken:"",           page: this.page,count: this.count,type: this.type,}).then((res) => {console.log(res);}).catch(function (err) {console.log("请求失败");});},},

然后信心满满的重启项目,再次运行,还是报错…

仔细找了一遍,发现封装axios的文件里面加了baseURL,会在发送请求时自动拼接到url的头部

const instance = axios.create({// baseURL: "http://whlt.51job-ideal.com", //baseURL会在发送请求时拼接在url头部timeout: 5000,headers: {"Content-Type": "application/json;charset=utf-8",},
});

将这一行注释掉,重启项目,拿到数据。

以下是我axios的封装(以防万一某些小伙伴复制代码运行不了 > . < )

import axios from "axios";const instance = axios.create({// baseURL: "http://whlt.51job-ideal.com", //baseURL会在发送请求时拼接在url头部timeout: 5000,headers: {"Content-Type": "application/json;charset=utf-8",},
});axios.defaults.withCredentials = true; //true允许跨域if (process.env.NODE_ENV === "production") {/*第二层if,根据.env文件中的VUE_APP_FLAG判断是生产环境还是测试环境*/if (process.env.VUE_APP_FLAG === "pro") {//production 生产环境axios.defaults.baseURL = "http://localhost:8080";} else {//test 测试环境axios.defaults.baseURL = "";}
} else {//dev 开发环境axios.defaults.baseURL = "http://localhost:8080";
}//请求拦截
instance.interceptors.request.use(function (config) {console.log("全局请求拦截");console.log(config);return config;},function (err) {return Promise.reject(err);}
);//响应拦截
instance.interceptors.response.use((response) => {// 如果返回的状态码为200,说明接口请求成功,可以正常拿到数据// 否则的话抛出错误if (response.status === 200) {return Promise.resolve(response);} else {return Promise.reject(response);}},// 服务器状态码不是2开头的的情况(error) => {if (error.response.status) {switch (error.response.status) {// 401: 未登录case 401:router.replace({path: "/login",query: {redirect: router.currentRoute.fullPath,},});break;case 403:this.$message("管理员权限已修改请重新登录");// 清除sessionStorage// store.commit("qiut");// 跳转登录页面,并将要浏览的页面fullPath传过去,登录成功后跳转需要访问的页面setTimeout(() => {router.replace({path: "/login",query: {redirect: router.currentRoute.fullPath,},});}, 1000);break;// 404请求不存在case 404:this.$message("请求页面飞到火星去了");break;}return Promise.reject(error.response);}}
);//封装get请求
export function get(url, params) {return instance.get(url, {params,});
}//封装post请求
export function post(url, data) {return instance.post(url, data);
}// import { post } from "../../utils/request";  调用

记得在需要调用的页面引入噢

import { post } from "../../utils/request";

技术不太好,见笑了哈,大家分享问题,一起共同成长。

vue跨域问题Response to preflight request doesn‘t pass access control check: No ‘Access-Control-Allow-Ori相关推荐

  1. 跨域:Response to preflight request doesn t pass access control check: No Access-Control-Allow-Origin

    第一.找到config/index.js 设置proxyTable,实际上就是设置代理路径(PS:设置config文件之后,需要重新npm run dev) dev: {env: require('. ...

  2. Response to preflight request doesn‘t pass access control check: No ‘Access-Control-Allow-Origin跨域问题

    出现问题:在本地运行,有配置vue.config.js中的proxy,所以解决了跨域问题.但将项目打包放到服务器上去,在打包的过程中,proxy是不会被打包进去的,也就是说代理所配置的跨域就已经失效了 ...

  3. 关于跨域 Response to preflight request doesn‘t pass access control check

    做项目的时候由于访问了不同的服务器,然后导致了跨域问题,报错情况为: has been blocked by CORS policy: Response to preflight request do ...

  4. 跨域 Response to preflight request doesn‘t pass access control check: It does not have HTTP ok status.

    在登录的时候没有跨域问题, token 认证的时候就跨域了(请求拦截器中配置的请求头携带 token),有点玄学了. 后端没有报错,不过显示请求方法为 OPTION 预检请求.前端报错如下,解决也很简 ...

  5. 跨域Response to preflight request doesn‘t pass access control check: It does not have HTTP ok status.

    最近后端添加自定义请求头拦截器后,前端也增加请求头后,解决过程中先后出现两种跨域错误. 一.请求后台出现如下跨域问题: has been blocked by CORS policy: Respons ...

  6. 关于Springboot中跨域问题的解决(Response to preflight request doesn‘t pass access control check)

    Springboot中跨域问题的解决 等不及的小伙伴,直接跳到结论部分即可,谢谢!!! 1. 背景 1.1 使用技术栈 Spring Security Springboot Vue.axios Jwt ...

  7. Response to preflight request doesn‘t pass access control check: The value of the ‘Access-Control-Al

    错误:Response to preflight request doesn't pass access control check: The value of the 'Access-Control ...

  8. 浏览器预检请求返回400 has been blocked by CORS policy: Response to preflight request doesn’t pass access cont

    这个问题也是很过分头一次遇到,原因是谷歌浏览器在有跨域(CORS)请求时,会先发送一个preflight(预检)请求,之后才会发送fetch请求. CORS:跨源资源共享 (CORS)(或通俗地译为跨 ...

  9. has been blocked by CORS policy: Response to preflight request doesn‘t pass access control check

    has been blocked by CORS policy: Response to preflight request doesn't pass access control check 这个错 ...

最新文章

  1. python时间日期字符串各种
  2. 李飞飞团队最新研究,真实场景中识别物体具体属性,连表面纹理都识别出来了...
  3. python 获取方法名_python 动态获取当前运行的类名和函数名的方法
  4. 基于Apache Spark的机器学习及神经网络算法和应用
  5. 美国宇航局:十年内VR/AR设备将成为标配
  6. 百度之下,你绝对猜不到的国内第二大搜索引擎
  7. 计算机毕设(附源码)JAVA-SSM基于JAVA宠物店管理系统
  8. php工具箱升级MySQL
  9. 精确计算——BigDecimal的使用
  10. 【金融123】ISDA协议
  11. Netty 快速入门系列 - Chapter 1 传统OIO与NIO - NIO 【第二讲】
  12. C语言学习之路-由浅入深(快速掌握c基础)
  13. VMware打开VMDK格式文件
  14. android 耳机孔 红外,手机遥控器,3.5mm耳机接口红外遥控改造解析
  15. Android-vold源码分析之连接电脑OTG(11)
  16. 企业如何选择物联网卡以及流量套餐?
  17. Oracle中Blob和Clob类型的区别
  18. x265-1.8版本-common/cudata.h注释
  19. 利用requests模块爬取任意城市肯德基门店地址
  20. python做正态分布的例子_Python求正态分布曲线下面积实例

热门文章

  1. python人脸识别代码百度ai_强大的AI!Python几行代码,就能预测未来孩子的长相?...
  2. VoiceOver的使用
  3. Finalize、Dispose、Close 的区别与使用[C#基础]
  4. 三个方面带您了解抖音宠物广告怎么样?
  5. linux定时执行命令
  6. lol个服务器系统更新先后,英雄联盟:年前服务器的最后一次更新 版本的英雄沉浮及详细解析...
  7. AI模拟面试官项目实战 | 项目概述
  8. 渗透测试面试、渗透技巧
  9. 用 Python 给全球女神颜值排个序
  10. 我亲眼看到一群人通过游戏推广翻身,推广游戏的主播成为亿级大佬