使用CORS的Python烧瓶,仅限Chrome的HTTP POST会导致OPTIONS请求

时间:2016-02-14 11:08:45

标签: python flask cors

我使用python flask和CORS插件构建了一个API。使用GET方法时,交叉原始请求很好。另外POST对IE很好,但不是chrome,在那里我看到OPTIONS请求而没有后续的POST。在阅读了很多关于CORS和大部分文档之后,我认为我对CORS的使用应该处理OPTIONS请求,但不是运气。

我的API代码:

        from flask import Flask, Response, jsonify, request
        from flask.ext.cors import CORS, cross_origin #Used to get around the Cross domain request issue (e.g. when making a request to an entity of another origin (ip/domain + port))
        from DB import webAPIInterface
        import json

        DB = webAPIInterface()

        app = Flask(__name__)
        CORS(app)
        app.config['CORS_HEADERS'] = 'Content-Type'



        @app.route('/api/v1.0/alarmArmedState', methods=['POST'])
        @cross_origin() # allow all origins all methods.
        def toggleAlarmArmedState():


            #DO stuff......

注意,我在google搜索后添加了app.config [' CORS_HEADERS' ...和@cross_origin()。似乎并没有太大的区别。我在这里也尝试了不同的值,包括JSON的内容类型(就像我使用的那样)。

我也尝试添加这个:

@app.after_request
def after_request(response):
   response.headers.add('Access-Control-Allow-Origin', '*')
   response.headers.add('Access-Control-Allow-Headers', 'Content-  Type,Authorization')
   response.headers.add('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE')
   return response

请让我知道你的想法。是否有一些显而易见的东西可以处理OPTIONS调用?

0 个答案:

没有答案