跨域请求原理
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
跨域是什么
出于安全原因,浏览器限制从脚本内发起的跨源HTTP请求。 例如,XMLHttpRequest和Fetch API遵循同源策略。 这意味着使用这些API的Web应用程序只能从加载应用程序的同一个域请求HTTP资源,除非响应报文包含了正确CORS响应头。
说人话:
只要出现下面的任一情况,就算不同源(即跨域)
协议不同(例如:http和https)
端口不同
域名不同(例如:a.baidu.com和b.baidu.com)
解决方案
在api返回REQUEST后加一个request后的处理请求
## 生成一个适合你的列表
#打开'Access-Control-Allow-Origin',允许跨域访问
@app.after_request
def after_request(response):
# response.headers.add('Access-Control-Allow-Origin', '*')
# 允许相同IP的跨域访问
response.headers.add('Access-Control-Allow-Origin', '你的请求来自哪里就填哪里')
# 允许本机所有跨域访问
# Access-Control-Allow-Credentials: true
response.headers.add('Access-Control-Allow-Credentials', 'true')
response.headers.add('Access-Control-Allow-Headers', 'Content-Type,Authorization')
response.headers.add('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS')
return response
## 解决方案二
配置ngxin服务器允许CORS