配置OPTIONS请求
协议(HTTP或者HTTPS)、IP、端口三者都相同,则为同源,否则为跨域。跨域请求,就是这么来的。
配置OPTIONS请求,有两种情况,第一种是开发环境,第二种是测试环境、生产环境。
开发环境,配置如下:
//配置代理
//修改config/index.js文件
dev: {
proxyTable: {
//可以配置N个
‘/api’: {
target: process.env.API_ROOT,
changeOrigin: true, //是否跨域
pathRewrite: {
‘^/api’: ‘/api’
}
}
}
}
//修改src/main.js文件,
//全局注册,只要引入一次,所有页面(组件)都可以使用axios。避免每次使用都要引入一次,太麻烦。
import Axios from ‘axios’
//将axios挂载在Vue实例原型上
Vue.prototype.$axios = Axios
import qs from ‘qs’
//配置接口URL
Axios.defaults.baseURL = process.env.API_ROOT
//请求接口,这样写就可以了。
this.$axios.post(’/api/test/query’, data).then(res => {
console.log(res);
})
测试环境、生产环境,配置如下:
请求分成两类:简单请求(simple request)和非简单请求(not-so-simple request)。
简单请求的头部参数,同时满足以下两项:
1、Request Method只能是HEAD、GET、POST三个之一。
2、Content-Type只能是application/x-www-form-urlencoded、multipart/form-data、text/plain三个之一。
因此,‘Content-Type’: ‘application/json’,为非简单请求。
非简单请求,每次发出请求的时候,一共发出了两次请求,第一次是OPTIONS预检请求,主要验证来源是否合法,验证是否有对指定站点的访问权限,并返回允许的Header等。第二次才是真正的请求。
需要在服务器配置nginx允许OPTIONS请求。
–修改nginx文件
//如果是OPTIONS方法直接返回204状态
if ($request_method = ‘OPTIONS’) {
add_header ‘Access-Control-Allow-Origin’ ‘*’;
add_header ‘Access-Control-Allow-Methods’ ‘GET, POST, OPTIONS’;
add_header ‘Access-Control-Allow-Headers’ ‘DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range’;
add_header ‘Access-Control-Max-Age’ 1728000;
add_header ‘Content-Type’ ‘text/plain; charset=utf-8’;
add_header ‘Content-Length’ 0;
return 204;
}
–检测配置
nginx -t
–没问题,就重启nginx
service nginx restart
配置OPTIONS请求相关推荐
- 使用axios时遇到的Request Method: OPTIONS请求,会同时发送两次请求问题
新接手的一个项目中,发现一些接口在请求时,会自动发送一个 Request Method: OPTIONS 的请求,我查了一遍代码,不是代码中写明的.就上网搜了一下,网上给出的解释涉及到了两个关键词: ...
- nginx配置ajax请求跨域
首先通过mozilla文档了解跨域原理: web跨域的方式有几种,常见的方案有web服务后端代码层级解决与nginx配置层面解决,这里我以nginx配置层面为例. 一般浏览器跨域请求的时候会先发起op ...
- java option请求_java – 如何说服spring 4.2将OPTIONS请求传递给控制器
我们在控制器上使用带有@RestController注释的spring mvc,我们正在处理控制器中的授权.我们使用相同的代码来设置响应CORS飞行前请求的允许方法.为实现这一目标,我们有: 在调度程 ...
- SpringBoot+Shiro放行OPTIONS请求,解决跨域问题
问题: 集成shiro之后发现配置放行的接口可以正常访问,而需要登录验证的接口会报错 其中OPTIONS类型的接口会报302 导致后续的post请求报错提示跨域问题 Shiro登录流程 首先Shiro ...
- authorization 传 就跨域_跨域访问接口上传图片出现options请求问题解决方法
1.首先因为服务器端会先发送一个option请求到后台 在后台返回一个post给页面 页面在处理post请求给接口 2.先写一个过滤器, 我们自己定义一个过滤器 package com.adtime ...
- 什么是options请求?为什么会有options请求?
关于options请求的一点理解 最近最项目改造,对所有的ajax请求统一做了一点处理,发现原来很正经的ajax请求突然不正常了,每个ajax之前都多了一个相应的method为options的请求.虽 ...
- 为什么会有OPTIONS请求
Options 请求,我所了解的就是在发起跨域的非简单请求时,会先发起一个 options 预检请求(浏览器是自动发起的),去检测目标服务器是支持跨域请求. 什么是 Options 请求? 获取服务器 ...
- java option请求_Spring boot处理OPTIONS请求
一.现象 从fetch说起,用fetch构造一个POST请求. 1 fetch('http://127.0.0.1:8000/api/login', {2 method: "POST&quo ...
- 跨域和options请求
前后端分离的项目中,前端和后端单独部署,使用不同的域名,前端代码在浏览器端访问后端的时候就会有跨域问题. 之前帮前端调试活动页面的时候,chrome调试工具上总是看到一个请求会重复发两次,后端加了锁, ...
最新文章
- mysql 系统表 存储过程_数据库系统(六)---MySQL语句及存储过程
- freeimage例子资料整理
- ubuntu修改gcc版本
- 一位Java大牛的BAT面试心得与经验总结,挥泪整理面经
- 深度探秘.NET 5.0
- nodejs文件写入
- 服务器自动post,Go Web服务器自动重定向POST请求
- struts_login实例
- Python3.x学习资料汇总(待续)
- html 点击展开全部,纯CSS实现点击展开全文功能
- Android流程图
- win10将用户文件夹改为英文
- CNCC 2022| 隐私计算:理论、技术、应用与未来
- workstation安装Windows Server 2016
- 尤雨溪:重头来过的 Vue3 带来了什么?
- 升到初二后成绩“一落千丈”?你家孩子也有这个困扰么?
- Scratch-陶陶摘苹果
- 【element-plus】el-dialog距离顶部的高度
- Linux Ubuntu20.04安装及环境配置细节分享
- 照片、摄影处理中的基本知识