2017-08-21 3 views
-2

PythonでAJAXで何かを要求すると、すべてがPythonで正常に実行されますが、経路がAJAXの情報を返すと、返されたテキストで別の空白ページが作成されます私は必要なページに欲しい。Flaskでの不正要求

@app.route('/', methods=['POST', 'GET']) 
def bot(): 
    texto = request.form['text'] 
    print(texto) 
    conversation = ConversationV1(
     username='a33eb2c9-d218-4e05-a8ff-a46b59c5c3b1', 
     password='VATP3XEHsrPL', 
     version='2017-05-26' 
    ) 

    context = {} 

    workspace_id = '96cbce3b-2fd3-49b0-ad57-da62c33547ee' 

    user = texto 
    response = conversation.message(
     workspace_id=workspace_id, 
     message_input={'text': user}, 
     context=context 
    ) 
    context = response['context'] 

    #se há intenções e dialogo 
    if response['intents'] or response['entities']: 

     if response['intents']: 
      intent = (json.dumps(response['intents'][0]['intent'],indent = 2)) 
      intent = intent[1:-1] 

     dialog = (json.dumps(response['output']['nodes_visited'][0],indent = 2)) 
     dialog = dialog[1:-1] 

     #se há resesposta à intenção 
     if response['output']['text']: 
      resposta = json.dumps(response['output']['text'][0],sort_keys=True, indent=4) 
      resposta = resposta[1:-1] 
      resposta = resposta.encode('utf-8') 
      resp = (resposta.decode('unicode-escape')) 

     #se entrou no nó x,y,z 
     if dialog == "perfil_e_id": 
      ID = (json.dumps(response['entities'][0]['value'],indent = 2)) 
      ID = ID[1:-1] 
      print (ID) 
      resp = perfill(ID) 

     elif dialog == "perfil": 
      return resp 
      ID = texto 
      print ("Ikrl : " + ID) 
      resp = perfil() 

     elif dialog == "heroi": 
      ID = (json.dumps(response['entities'][0]['value'])) 
      ID = ID[1:-1] 
      resp = herostats(int(ID)) 
      return resp 

     elif dialog == "counterheroi": 
      ID = (json.dumps(response['entities'][0]['value'])) 
      ID = ID[1:-1] 
      resp = herostats(int(ID)) 
      return resp 

    else: 
     resposta = json.dumps(response['output']['text'][0],sort_keys=True, indent=4) 
     resposta = resposta[1:-1] 
     resposta = resposta.encode('utf-8') 
     resp = (resposta.decode('unicode-escape')) 

    print (resp) 
    return resp 

そして、私のAjaxコード:ここで 応答画像ここ image2 はコードであるあなたがあなたのPCでのテストが必要な場合は

$(function(){ 
    $(".mytext").on("keyup", function(e){ 
     if (e.which == 13){ 
      var text = $(this).val(); 
      if (text !== ""){ 
       insertChat("me", text); 
       document.getElementById("nome").innerHTML = text;    
       $(this).val(''); 
      } 
      $.ajax({ 
       url: '/', 
       data: $(text), 
       type: 'POST', 

       success: function(response){ 
       console.log(response); 
       insertChat("you", response) 

       }, 
       error: function(error){ 
       console.log(error) 
       } 
      }) 
     } 
    }); 
    }); 

が、私は.RARファイルをアップロード https://drive.google.com/open?id=0B9TVHd_5neJ1amdqZWVrbm9mX2c

答えて

-1

すべての問題を解決するかどうかわからないが、最初に交換してみてください

texto = request.form['text'] 
#    ^^^^^^ 

texto = request.json.get('text') 
#    ^^^^^^^^^ 
+0

修正がいけない:C〜TEXTO = request.json.get(「テキスト」) はAttributeError:「NoneType」オブジェクトが –

0

にデフォルトアクションを提出キャンセルしていません。

if (e.which == 13){ 
    e.preventDefault(); 
    ... 
+0

が機能していない「取得」は属性を持っていない、楽しいは私が同様のアプリケーションやコードを持っていますほぼ正確に動作しています。 –