美文网首页
flask 跨域问题

flask 跨域问题

作者: one_8274 | 来源:发表于2020-03-31 10:47 被阅读0次

    问题原因

    由于浏览器受同源策略的限制,在使用XMLHttpRequest对象进行跨域请求时,通常会报No 'Access-Control-Allow-Origin' header is present on the requested resource错误,导致请求失败。

    解决方式

    解决该问题的基本思路是使用CORS(Cross-Origin Resource Sharing)或JSONP,具体到Flask场景,有以下三种方式。

    方法一

    使用flask内置的after_request()方法

    app = Flask(__name__)
    
    # 跨域支持
    def after_request(resp):
        resp.headers['Access-Control-Allow-Origin'] = '*'
        return resp
    
    app.after_request(after_request)
    

    方法二

    使用flask_cors模块

    from flask import Flask
    from flask_cors import CORS
    
    app = Flask(__name__)
    
    CORS(app)
    

    更多有关flask-cors模块的用法可参考:https://flask-cors.readthedocs.io/en/latest/

    方法三

    使用JSONP

    from flask import Flask, request
    
    # 获取回调函数名称
    callback = request.args.get('callback')
    # 支持JSONP,使用回调函数包裹实际要返回的JSON数据
    return callback + '(' + json.dumps(resp_data) + ')'
    
    

    相关文章

      网友评论

          本文标题:flask 跨域问题

          本文链接:https://www.haomeiwen.com/subject/naziuhtx.html