协议(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请求相关推荐

  1. 使用axios时遇到的Request Method: OPTIONS请求,会同时发送两次请求问题

    新接手的一个项目中,发现一些接口在请求时,会自动发送一个 Request Method: OPTIONS 的请求,我查了一遍代码,不是代码中写明的.就上网搜了一下,网上给出的解释涉及到了两个关键词: ...

  2. nginx配置ajax请求跨域

    首先通过mozilla文档了解跨域原理: web跨域的方式有几种,常见的方案有web服务后端代码层级解决与nginx配置层面解决,这里我以nginx配置层面为例. 一般浏览器跨域请求的时候会先发起op ...

  3. java option请求_java – 如何说服spring 4.2将OPTIONS请求传递给控制器

    我们在控制器上使用带有@RestController注释的spring mvc,我们正在处理控制器中的授权.我们使用相同的代码来设置响应CORS飞行前请求的允许方法.为实现这一目标,我们有: 在调度程 ...

  4. SpringBoot+Shiro放行OPTIONS请求,解决跨域问题

    问题: 集成shiro之后发现配置放行的接口可以正常访问,而需要登录验证的接口会报错 其中OPTIONS类型的接口会报302 导致后续的post请求报错提示跨域问题 Shiro登录流程 首先Shiro ...

  5. authorization 传 就跨域_跨域访问接口上传图片出现options请求问题解决方法

    1.首先因为服务器端会先发送一个option请求到后台  在后台返回一个post给页面 页面在处理post请求给接口 2.先写一个过滤器, 我们自己定义一个过滤器 package com.adtime ...

  6. 什么是options请求?为什么会有options请求?

    关于options请求的一点理解 最近最项目改造,对所有的ajax请求统一做了一点处理,发现原来很正经的ajax请求突然不正常了,每个ajax之前都多了一个相应的method为options的请求.虽 ...

  7. 为什么会有OPTIONS请求

    Options 请求,我所了解的就是在发起跨域的非简单请求时,会先发起一个 options 预检请求(浏览器是自动发起的),去检测目标服务器是支持跨域请求. 什么是 Options 请求? 获取服务器 ...

  8. java option请求_Spring boot处理OPTIONS请求

    一.现象 从fetch说起,用fetch构造一个POST请求. 1 fetch('http://127.0.0.1:8000/api/login', {2 method: "POST&quo ...

  9. 跨域和options请求

    前后端分离的项目中,前端和后端单独部署,使用不同的域名,前端代码在浏览器端访问后端的时候就会有跨域问题. 之前帮前端调试活动页面的时候,chrome调试工具上总是看到一个请求会重复发两次,后端加了锁, ...

最新文章

  1. mysql 系统表 存储过程_数据库系统(六)---MySQL语句及存储过程
  2. freeimage例子资料整理
  3. ubuntu修改gcc版本
  4. 一位Java大牛的BAT面试心得与经验总结,挥泪整理面经
  5. 深度探秘.NET 5.0
  6. nodejs文件写入
  7. 服务器自动post,Go Web服务器自动重定向POST请求
  8. struts_login实例
  9. Python3.x学习资料汇总(待续)
  10. html 点击展开全部,纯CSS实现点击展开全文功能
  11. Android流程图
  12. win10将用户文件夹改为英文
  13. CNCC 2022| 隐私计算:理论、技术、应用与未来
  14. workstation安装Windows Server 2016
  15. 尤雨溪:重头来过的 Vue3 带来了什么?
  16. 升到初二后成绩“一落千丈”?你家孩子也有这个困扰么?
  17. Scratch-陶陶摘苹果
  18. 【element-plus】el-dialog距离顶部的高度
  19. Linux Ubuntu20.04安装及环境配置细节分享
  20. 照片、摄影处理中的基本知识

热门文章

  1. AVR ATMEGA8的初次使用
  2. Background背景
  3. [ZZ]Windows磁盘驱动基础教程
  4. unity2D学习(2)Tilemap绘制地图
  5. 第六章软件项目配置管理
  6. 办公用品申请领用管理
  7. 前端html-部件模板收集(附源码)
  8. 【转】细说linux挂载。mount。。。
  9. html页面设置平滑字体,HTML5之CSS-网页文本美化-字体样式
  10. frozen ui php,手机版开发框架集合 Frozen UI WeUI SUI Mobile