2

自分の問題についてこれ以上わからないので、ようやくサインアップしました。バックエンド部分には asyncio と aiohttp を使用し、フロントエンド部分には JavaScript を使用しています。しかし、405エラーで立ち往生しました。(私は論文ライブラリの初心者です)

投稿リクエストからjsonを取得したいと思います。ここでJavaScript関数:

function postJson (data){

    $.ajax({

           url : 'http://localhost:8080/postJson',
           type : 'POST',
           dataType : 'json',
           contentType : 'application/json',
           data  : data, //data are ready at json format, I do not think I need to use JSON.stringify ? I does not change anything to the error anywhere
           success : function(code_html, statut){ 
             console.log("success POST");
           },

           error : function(resultat, statut, erreur){
             console.log("error POST");
           }

        });
  }

そしてpythonコード:

async def postJson(request): 
   data = await request.post()
   #some code
   return Response()


@asyncio.coroutine
def init(loop):
    app = Application(loop=loop)
    app.router.add_route('POST', '/postJson', postJson)

    handler = app.make_handler()
    srv = yield from loop.create_server(handler, '127.0.0.1', 8080)
    print("Server started at http://127.0.0.1:8080")
    return srv, handler

loop = asyncio.get_event_loop()
srv, handler = loop.run_until_complete(init(loop))

try:
    loop.run_forever()
except KeyboardInterrupt:
    loop.run_until_complete(handler.finish_connections())

このコードでは、405 エラーが発生します。ここで、リクエストに関する firebug の言葉の一部を示します。

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 // so json is not in the list.

contentType : 'application/json'ただし、 JavaScriptファイルの行を元に戻すと機能します(ただし、リクエストは呼び出されたオブジェクトを送信し、パッケージからMultiDictProxy関数を使用する方法がわかりません( here)。json()aiohttp.web

本当にjsonオブジェクトを取得する必要があります。誰かが私を助けることができますか?

4

2 に答える 2