msgpack données du côté client avec js dans un environnement werkzeug Je l'ai envoyé comme suit.
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)
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):
#Regardons vraiment l'en-tête
print msgpack.unpackb(request.data)
return Response('aaa')
$ ({'name': 'name', 'value': 'aaaaa'},)
Il semble que msgpack.js a une méthode appelée msgpack.upload
.
La méthode est PUT, ou le Content-Type de l'en-tête de la requête est ʻapplication / x-www-form-urlencoded`.
J'ai ressenti quelque chose d'incommensurable, alors j'ai utilisé le XMLHttpRequest brut pour le moment.
C'est inutile car ArrayBuffer ne peut pas être envoyé avec jQuery.ajax.
Lorsque j'ai défini le Content-Type sur x-www-form-urlencoded
, j'ai senti que ce n'était pas le cas que les données envoyées étaient stockées dans Request.form
au lieu de Request.data
dans werkzeug. J'ai réussi à le faire.
Enfin, j'ai décidé de l'envoyer par WebSocket. Eh bien, je pense qu'il existe de nombreuses situations où WebSocket ne peut pas être utilisé, mais si vous le rafraîchissez de manière pratique, ce sera utile.
Je pense qu'il y a beaucoup d'endroits où aller, alors faites-le moi savoir si vous avez des détails.
Recommended Posts