Я не могу увидеть ответ веб-службы через чванство - PullRequest
0 голосов
/ 02 ноября 2018

У меня проблема с чванством. Я сделал веб-сервис, который вызывается веб-страницей. Там возвращенная информация видна, но когда я хочу увидеть ее через чванство (потому что мне нужно проверить это в обоих местах), она показывает эту ошибку

enter image description here

Это мой второй веб-сервис, который я делаю на Python, я делал это от души и читал Google, так что я знаю, что он не самый лучший и не самый красивый. Здесь я оставляю код моей страницы и код питона, чтобы прочитать их мнение:

from app import APP
import cx_Oracle
import json
from flask import render_template, request, jsonify
import log
import database
from flask_restplus import Api, Resource, fields

with open('./config/config_countries.json', 'r') as config_file:
    config = json.load(config_file)

with open('./config/config_general.json', 'r') as config_file:
    config_general = json.load(config_file)

global max_return
global log_tag
log_tag = config["CONFIG"]["LOG_TAG"]
srv_name = config["CONFIG"]["LOG_TAG"]
desc = config["CONFIG"]["DESCRIPTION"]
profile_name = config["CONFIG"]["PROFILE_NAME"]
conn_str = config_general["CONFIG"]["DB"]
max_return = config_general["CONFIG"]["MAX_RETURN"]
limite = config_general["CONFIG"]["LIMIT_PER_SECOND"]

log.init(profile_name)
log.dbg('Start')
database.init()

api = Api(APP, version='1.0', title=srv_name,
          description=desc + '\n'
                             'Database:' + conn_str + '\n'
                                                           'Max request by second:' + limite)

ns = api.namespace('getCountries', description='getCountries Predictions')

@APP.route('/getCountries', methods=['GET', 'POST'])
@ns.response(200, 'Success')
@ns.response(404, 'Not found')
@ns.response(429, 'Too many request')
@ns.param('country', 'Substring Country (ej:ARGE)')
def getCountries():
    try:
        list_parametros = (request.get_json())
        country = list_parametros["country"]
        cur = database.db.cursor()
        list = cur.var(cx_Oracle.STRING)
        cur.callproc('PREDICTIVO.get_country', (country, max_return, list))
    except Exception as e:
        database.init()
        if database.db is not None:
            log.inf('Reconexion OK')
            cur = database.db.cursor()
            list = cur.var(cx_Oracle.STRING)
            cur.callproc('PREDICTIVO.get_country', (country, max_return, list))
        else:
            log.err('Connection Fail')
            list = None
    response = list.getvalue()
    return json.dumps(response), 200

И html:

<html>
    <head>
        <script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
    </head>
    <body>
        <input list="lista_paises" id="pais" type="text" placeholder="Pais"/>
        <datalist id="lista_paises"></datalist><br />
    </body>
</html>

<script type="text/javascript">
    // <![CDATA[
    $("#pais").keyup(function (e) {
        if ($("#pais").val().length > 0) {
            $.ajax({
                type: 'POST',
                url: 'http://127.0.0.1:5100/getCountries',
                data: JSON.stringify({ "country": $("#pais").val() }),
                contentType: 'application/json; charset=utf-8',
                dataType: "json",
                success: function (response) {
                    console.log('RESPUESTA:' + response);
                    var parsedJSON = JSON.parse(response);
                    var options = '';
                    for (var i = 0; i < parsedJSON.list_pais.length; i++) {
                        options += '<option value="' + parsedJSON.list_pais[i].pais + '" />';
                    }
                    document.getElementById('lista_paises').innerHTML = options;
                },
                error: function (error) {
                    console.log(error);
                }
            });
        } else {
                 document.getElementById('lista_paises').innerHTML = '';
        }
    });

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