Flask Web接口跨域

Flask Web接口跨域

环境

Python3.7.0

macOS High Sierra 10.13.6

Flask1.0.2

跨域文件上传的时候,浏览器会自动发起一个 OPTIONS 方法到服务器,现在后台解决前端跨域解决前端跨域请求的问题

客户端发起的这个 OPTIONS 可以说是一个“预请求”,用于探测后续真正需要发起的跨域 POST 请求对于服务器来说是否是安全可接受的,因为跨域提交数据对于服务器来说可能存在很大的安全问题

请求头 Access-Control-Request-Method 用于提醒服务器在接下来的请求中将会使用什么样的方法来发起请求

Access-Control-Allow-Method 和 Access-Control-Allow-Origin 分别告知客户端,服务器允许客户端用于跨域的方法和域名

下载flask_cors
sudo pip3 install flask_cors

flask_cors==3.0.6

flask_cors使用

from flask import Flask
from flask_cors import CORS

app=Flask(__name__)
CORS(app,resources=r'/*')
示例1
from flask import Flask,jsonify

app=Flask(__name__)

test={
    'name':'aaa',
    'age':'18'
}

@app.route('/',methods=['GET'])
def Test():
    return jsonify(test)

def main():
    app.run()

if __name__ == '__main__':
    main()

Headers:
Content-Length →26
Content-Type →application/json
Date →Mon, 27 Aug 2018 10:57:20 GMT
Server →Werkzeug/0.14.1 Python/3.7.0

示例2
from flask import Flask,jsonify
from flask_cors import CORS

app=Flask(__name__)
CORS(app,resources=r'/*')

test={
    'name':'aaa',
    'age':'18'
}

@app.route('/',methods=['GET'])
def Test():
    return jsonify(test)

def main():
    app.run()

if __name__ == '__main__':
    main()

Headers:
Access-Control-Allow-Origin →*
Content-Length →26
Content-Type →application/json
Date →Mon, 27 Aug 2018 11:02:52 GMT
Server →Werkzeug/0.14.1 Python/3.7.0

很容易发现两个headers多了个Access-Control-Allow-Origin字段

Access-Control-Allow-Origin:
Specifies a URI that may access the resource. For requests without credentials, the server may specify '*' as a wildcard, thereby allowing any origin to access the resource.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是跨域 跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实...
    Yaoxue9阅读 1,364评论 0 6
  • 什么是跨域 跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实...
    他方l阅读 1,100评论 0 2
  • 什么是跨域 跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实...
    HeroXin阅读 875评论 0 4
  • CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。 ...
    myccy8阅读 447评论 0 2
  • 我还是很怀念两年之前的我,可以假装很快乐。
    小白很黑阅读 222评论 0 0