Отправка данных с помощью XMLHttpRequest - PullRequest
0 голосов
/ 30 сентября 2018

У меня есть веб-сайт, который должен отправить имя скрипту Python (на стороннем веб-сайте) при нажатии кнопки.Затем этот скрипт на python сделает имя заглавным и вернет его обратно на веб-сайт.

В данный момент XMLHttpRequest правильно отправляется при нажатии кнопки, но я не уверен, как правильно отправить данные с помощьюXMLHttpRequest, а затем способ доступа к этим данным в скрипте Python.

XMLHttpRequest:

document.getElementById("myButton").addEventListener("click", 
    function() {
        var myRequest = new XMLHttpRequest();

        myRequest.open('GET', 'https://example.com/');

        myRequest.onreadystatechange = function () { 
            if (myRequest.readyState === 4) {
                alert(myRequest.responseText);
            }
        }
        myRequest.send("Bob"});
    }
);

Скрипт Python:

from flask import Flask, jsonify
from flask_cors import CORS
from requests import request

app = Flask(__name__)
CORS(app)

@app.route("/", methods=["GET"])
def hello_world():
    return jsonify(name = (name_sent_by_XMLHttpRequest).upper()) # Should return "BOB"

if __name__ == '__main__':
    app.run()

1 Ответ

0 голосов
/ 30 сентября 2018

Я ничего не знаю о XMLHTTPRequest javascripts, но в какой-то момент вам нужно отправить name на сервер python, верно?Как это сделать, зависит от вас, но опция GET:

GET-запрос с аргументами: https://example.com/?name=your_name_goes_here

в вашем приложении фляги, функция прослушивания по маршруту "/" теперь будетиметь доступ к этому аргументу, что-то вроде

name = request.args.get('name', '')

, затем вы можете прописать его в верхнем регистре () и вернуть его в каком-нибудь формате - вероятно, XML?

return Response(my_xml, mimetype='text/xml')

Обновление на основе вашего комментария: обычно в функции фляги вы используете объект фляги request для получения параметров URL.В вашем примере вы импортируете модуль requests как request, не используя его, а забивая пространство имен flask.request.Измените ваш импорт на что-то вроде этого, и оно должно работать нормально:

from flask import Flask, jsonify, request
from flask_cors import CORS
import requests
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...