博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
无代理处理post非简单请求跨域问题
阅读量:6479 次
发布时间:2019-06-23

本文共 1040 字,大约阅读时间需要 3 分钟。

express下

在处理纯http服务post请求的时候的跨域问题

即使在服务端先加入

Access-Control-Allow-Origin: *(get即时有效) 会出现   Failed to load http://127.0.0.1:3000/heros: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:5000' is therefore not allowed access.
 的报错 参考资料由于对于数据的操作属于非简单请求,当浏览器真正操作数据前需要做一次‘preflight’当预检成功会才会发送数据操作 预检请求的方式为option,所以可以在后台app.js中通过判断请求类型为option时进行预检的通过返回
const app = express()// 处理预检,CORS 默认支持 get// 其他需要单独处理app.use((req, res, next) => {  // 如果请求方法是 options ,则我认为是浏览器的非简单预检请求  if (req.method.toLowerCase() === 'options') {    // 处理预检请求的响应    // return 的目的是不让代码继续往后执行了    return res      .status(200)       .set('Access-Control-Allow-Origin', '*')      // .set('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE')       .set('Access-Control-Allow-Headers', 'Content-Type')       .end()   }  // 非预检请求直接跳过该中间件的处理  next() })
 

资料:http://www.ruanyifeng.com/blog/2016/04/cors.html

转载于:https://www.cnblogs.com/herewego/p/9283846.html

你可能感兴趣的文章
.NET 同步与异步之锁(Lock、Monitor)(七)
查看>>
koa2-connect-history-api-fallback 使用
查看>>
前端大牛们都学过哪些?
查看>>
Spring MVC概述(2)
查看>>
利用simulink分析系统各种传递函数的BODE图、阶跃响应、单位脉冲响应
查看>>
在iOS当中发送电子邮件和短信
查看>>
python的单例模式
查看>>
13~1003的和
查看>>
myeclipse启动jboss报ERROR [MainDeployer] Could not create deployment
查看>>
pycharm如何新项目如何不默认创建虚拟环境(吐槽)
查看>>
Loadrunner检查点小结(很经典)
查看>>
MySQL字段类型详解
查看>>
ORACLE 的游标
查看>>
虚拟机安装的UBUNTU全屏的方法:
查看>>
java虚拟机类加载器
查看>>
ASP.NET状态管理之八(会话Session)
查看>>
I.MX6 Android 5.1.1 下载、编译
查看>>
background
查看>>
转载:大型网站架构演变和知识体系
查看>>
testNG 学习笔记 Day 1 使用功能详解
查看>>