Как я могу решить междоменную проблему в python flask ответ сервера на js? - PullRequest
0 голосов
/ 09 января 2020

Я попробовал Flask ответ сервера с JavaScript.

, но во внешнем интерфейсе произошла ошибка следующим образом.

datatables. js: 10449 Блокировка перекрестного происхождения (CORB) заблокировала ответ перекрестного происхождения ...

Итак, я попытался решить эту проблему с помощью CORS.

Вот моя попытка в python тесте код.

from flask import request, Flask, jsonify
from flask_restful import Resource, Api
from flask_cors import CORS, cross_origin

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

@app.route('/', methods=['GET'])
@cross_origin(origins = '*')

def get():
    try:
        parameter1 = request.args.get('parameter1')
        parameter2 = request.args.get('parameter2')
        parameter3 = request.args.get('parameter3')
        parameter4 = request.args.get('parameter4')
        parameter5 = request.args.get('parameter5')
    para_dict = {'parameter1':parameter1,
         'parameter2':parameter2,
         'parameter3':parameter3,
         'parameter4':parameter4,
         'parameter5':parameter5,
         }
    return jsonify(para_dict)

В JavaScript jsonp используется для устранения ошибок ответа, как показано в приведенном ниже коде.

var url = 'localhost:5002/';
var param = {
    parameter1: $ {
        param.parameter1
    },
    parameter2: $ {
        param.parameter2
    },
    parameter3: $parameter3.val().trim(),
    parameter4: $parameter4.val().trim(),
    parameter5: $parameter5.val().trim()
};
$.get(url, param, function(data) {
    if (data.status) {
        if (!$parameter3.val().trim()) $parameter3.val(data.value);
        else if (!$parameter4.val().trim()) $parameter3.val(data.value);
        else if (!$parameter5.val().trim()) $parameter3.val(data.value);

        chart.addPointAnnotation({
            x: data.x,
            y: data.y,
            label: {
                text: 'operation_point',
                style: {
                    fontSize: '1rem',
                    padding: {
                        left: 10,
                        right: 10,
                        top: 5,
                        bottom: 5,
                    }
                }
            },
        });
    } else {
        alert(data.msg);
    }
}, 'jsonp');//using jsonp

И когда я проверял сеть, я думаю, что это хорошо передается.

Ниже приведена информация о заголовке сети.

Access-Control-Allow-Origin: *
Content-Length: 98
Content-Type: application/json
Date: Thu, 09 Jan 2020 00:31:50 GMT
Server: Werkzeug/0.14.1 Python/3.7.3

Но все равно выдается та же ошибка.

Что еще я должен установить, кроме cors и jsonp?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...