2017-05-12 6 views
0

나는 이것이 아주 기본적인 것들이라는 느낌이 들었습니다. 그러나 나는 이것을 온라인 어디에서나 발견 할 수 없다. 설정은 간단합니다 : 변수가 foo = 1인데 이제는 내 app.py으로 보내고 싶습니다. 나는 AJAX가 필요하다는 것을 이해한다. 그래서 나는 거기에 AJAX를 가지고있다.술병은 jquery에서 var를받습니다.

JS :

$(function() { 
     $('#btn').click(function() { 
      var answer = 1 
     $.ajax({ 
      url: '/checkAnswer', 
      data: answer, 
      type: 'GET', 
      success: function(data) { 
       console.log(data); 
      }, 
      error: function(error) { 
       console.log(error); 
      } 
     }); 
     }); 
     }); 

: Curently 내가해야 할 생각이 같은 것입니다

@app.route('/checkAnswer', methods=['GET', 'POST']) 
def checkAnswer(): 
    try: 
     answer = request.data 
     if answer == 1: 
      return 'ham' 
     else: 
      return answer 

    except Exception as e: 
     return 'foo bar' 

답변

0

으로 POST 대신 GET을 사용하는 것이 좋을 것이다 당신은 데이터를 전송하고 있습니다. 또한 donefailpromises은 일반적으로 콜백보다 명확하고 유용합니다.

JS :

$(function() { 
    $('#btn').click(function() { 
     var answer = 1 
     $.ajax({ 
      url: '/checkAnswer', 
      data: { 
       answer: answer 
      }, 
      type: 'POST' 
     }).done(function(data) { 
      console.log(data); 
     }).fail(function(error) { 
      console.log(error); 
    }); 
}); 

평 :

@app.route('/checkAnswer', methods=['POST']) 
def checkAnswer(): 
    try: 
     answer = request.form['answer'] if 'answer' in request.form else None 
     if answer == 1: 
      return 'ham' 
     else: 
      return answer 

    except Exception as e: 
     return 'foo bar' 

라인 request.form['answer']은 최상의 경우이다.

JS :

$(function() { 
    $('#btn').click(function() { 
     var answer = 1 
     $.ajax({ 
      url: '/checkAnswer', 
      data: JSON.stringify({'answer': answer}), 
      type: 'POST', 
      contentType: 'application/json; charset=utf-8', 
      dataType: 'json', 
     }).done(function(data) { 
      console.log(data); 
     }).fail(function(error) { 
      console.log(error); 
    }); 
}); 
내가 JSON을 보내는 제안,이 때문에

answer = request.form.getlist('answer')[0] 

그러나, ajax 데이터를 게시 과거에, 나는 데이터를 얻기 위해이 일을 했어

평 :

@app.route('/checkAnswer', methods=['POST']) 
def checkAnswer(): 
    data = request.get_json() 
    if data is None: 
     return 'foo bar' 
    answer = data['answer'] if 'answer' in data else None 
    if answer == 1: 
     return 'ham' 
    else: 
     return answer 

참고 : ajax 요청에서 컨텐트 유형을 설정하는 것은 중요하지 않은 것처럼 마치 request.get_json()returns None입니다.

+0

나를 위해 해 주셨습니다. 덕분에 많은 도움을 받았습니다. –