[PYTHON] Senden Sie msgpack mit Ajax an die flk (werkzeug) Umgebung

msgpack-Daten von der Client-Seite mit js in einer werkzeug-Umgebung Ich habe es wie folgt gesendet.

Client-Seite

ninja.coffee


sendMsgPack:(event)=>
  event.preventDefault()
  arr = $('#hogehogeForm').serializeArray()
  data = msgpack.pack(arr)
  arrayBinary = new Uint8Array(data)
  xhr = new XMLHttpRequest()
  xhr.open('POST', '/api/url', true)
  xhr.onreadystatechange = ()->
  if xhr.readyState is 4 and xhr.status is 200
      console.log xhr.responseText
  else if xhr.readyState is 4 and xhr.status isnt 200
      console.log xhr, "hogehoge"
  xhr.setRequestHeader('Content-Type', 'application/x-msgpack; charset=x-user-defined')
  xhr.send(arrayBinary.buffer)

Serverseite

tasukete.py


import msgpack
from shimehari import Response, ApplicationController, request
import msgpack

class FooController(ApplicationController):
    def __init__(self, name):
        ApplicationController.__init__(self, name)

    def index(self, *args, **kwargs):
        return 'hidebu'

    def create(self, *args, **kwargs):
        #Schauen wir uns den Header wirklich an
        print msgpack.unpackb(request.data)
        return Response('aaa')
$ ({'name': 'name', 'value': 'aaaaa'},)

Es scheint, dass msgpack.js eine Methode namens "msgpack.upload" hat. Die Methode ist PUT oder der Inhaltstyp des Anforderungsheaders lautet "application / x-www-form-urlencoded". Ich fühlte etwas Unermessliches, also benutzte ich vorerst die rohe XMLHttpRequest. Es ist nutzlos, da ArrayBuffer nicht mit jQuery.ajax gesendet werden kann.

Als ich den Inhaltstyp auf "x-www-form-urlencoded" setzte, hatte ich das Gefühl, dass die gesendeten Daten nicht in "Request.form" statt in "Request.data" in werkzeug gespeichert wurden. Ich habe es geschafft.

Endlich habe ich beschlossen, es tatsächlich per WebSocket zu senden. Ich habe das Gefühl, dass es viele Situationen gibt, in denen WebSocket nicht verwendet werden kann, aber wenn Sie es bequem auffrischen, wird es nützlich sein.

Ich denke, es gibt viele Orte, an die man gehen kann. Bitte lassen Sie mich wissen, wenn Sie Details haben.

Recommended Posts

Senden Sie msgpack mit Ajax an die flk (werkzeug) Umgebung
Senden Sie CSS mit Flask komprimiert an Gzip
Vom Umgebungsaufbau bis zum Einsatz für Kolben + Heroku mit Docker
Erstellen Sie eine Flask-Umgebung mit Dockerfile + docker-compose.yml
Wenn Sie ein Objekt mit Anforderungen mithilfe der Flasche senden möchten
Ändern Sie die Python 64-Bit-Umgebung mit Anaconda in eine 32-Bit-Umgebung
HTML-Mail mit Bild zum Senden mit Python
Vue.js + Konstruktionsmemorandum zur Flaschenumgebung ~ mit Anaconda3 ~
Senden Sie Daten mit Vue.js an die DRF-API
Hochladen mit Heroku, Flask, Python, Git (4)
Senden Sie eine Nachricht mit Python an LINE (LINE Notify)
So senden Sie eine Nachricht mit Curl an LINE
Senden Sie eine E-Mail mit Python an Spushis Adresse
Beispiel für eine Slack-Benachrichtigung mit Python Lambda
Von der Python-Umgebungskonstruktion zur virtuellen Umgebungskonstruktion mit Anaconda
Verwenden der Flasche mit Nginx + Gunicorn-Konfiguration [Lokale Umgebung]
Flow, um die Slack-Authentifizierung mit Flask (Python) abzuschließen
Aufbau einer virtuellen Umgebung mit Docker + Flask (Python) + Jupyter-Notebook
Ich möchte mit einem Knopf am Kolben übergehen
Von Kafka bis KSQL - Einfache Umgebungskonstruktion mit Docker
Hochladen mit Heroku, Flask, Python, Git (Teil 3)
Ausgabeprotokoll an die Konsole mit Flask + Nginx auf Docker
Versuchen Sie, mit MVC eine RESTful-API mit Flask 1.0.2 zu erstellen
Hochladen mit Heroku, Flask, Python, Git (Teil 1)
termux × AWS Senden Sie mit IoT Standortinformationen für Smartphones an AWS
Hochladen mit Heroku, Flask, Python, Git (Teil 2)
SSH in eine virtuelle Umgebung mit vscode Remote Development
Simulieren Sie die Temperaturmessung mit Raspberry Pi + Flask + SQLite + Ajax
Erstellen einer Umgebung für die Verwendung von CaboCha mit Google Colaboratory