2014-02-27 4 views
0

플라스크 애플리케이션에 텍스트 상자 값을 전달하려는 웹 애플리케이션이 있습니다. 그러나 플라스크에 요청 객체를 인쇄 할 때 데이터가 없습니다. 친절하게 도움을 줄 수 있습니까?HTML 데이터를 Flask에 전달하기

플라스크 서버 :

@app.route('/send_data', methods=['GET', 'POST']) 

def send_data(): 
    print request 
    if request.method == "POST": 
     #Operations with the data received 
    else: 
    return jsonify(txt="Nothing received"); 

HTML 코드 :

<div id="div_submit"> 
<form name="form_submit"> 
    <textarea cols="100" rows="1" id="txt_query"> 

    </textarea> 
    <br> 
    <br/> 
    <input type="submit" value="Submit" onclick="send_query()"> 
</form> 
</div> 

자바 스크립트 :

나 코드 out.Here 있습니다3210
function send_query() 
    { 
     var qry=document.getElementById("txt_query").value; 
     //alert(qry); 
     var contentType = "application/x-www-form-urlencoded"; 
     var ajax=$.ajax({ 
      type: "POST", 
      url: "http://0.0.0.0:8080/send_data", 
      data: JSON.stringify(qry), 
      dataType: "json" 

     }).done(function(data){ 
       alert("success"); 
      }); 
      ajax.fail(function(data){ 
       alert("fail"); 
      }); 


    } 
+0

누군가가 친절하게 나를 도와 드릴까요 ??? – user2284140

답변

1

당신은 JSON 데이터를 게시됩니다; application/json에 콘텐츠 형식을 설정하고 데이터를로드 할 request.get_json() method를 사용하는 URL은 의미가 있어야한다

var ajax=$.ajax({ 
    type: "POST", 
    url: "http://127.0.0.1:8080/send_data", 
    data: JSON.stringify({query: qry}), 
    dataType: "json", 
    contentType: "application/json; charset=UTF-8" 
}) 

을; 0.0.0.0은 서버에서는 괜찮 으면 (즉, '모든 인터페이스에 바인드'를 의미 함) localhost에서이 작업을 실행하고 있으므로이 작업을 먼저 사용하십시오. 보기 사용에

:

data = request.get_json() 
query = data['query'] 
+0

ajax 호출에서 POST로 메서드를 나타내고 있습니다. 그리고 내가 플라스크 서버에서 메소드 이름을 출력 할 때 request.method를 사용하면 POST.And request.method == "POST"가 true가됩니다. if 문 안에 들어가는 것이 전부입니다. 나는 요청한다. 나는 아무것도 얻지 못한다. – user2284140

+0

@ user2284140 : 죄송합니다. 실제로 놓쳐 버렸습니다. JSON을 게시하고 싶으므로'requests.get_json()'을 사용하고 내용 유형을 올바르게 설정하십시오. –

+0

변경 사항을 적용하면 알려줍니다. 서버에서 다음과 같은 메시지가 나타납니다. 127.0.0.1 - [27/Feb/2014 16:32:00] "OPTIONS/send_data HTTP/1.1"500 그래서 200 대신 HTTP 500 메시지가 표시됩니다. 나는 data = request.get_json()을 사용하여 NoneType 객체를 제공한다. 그리고 그 방법은 POST에서 OPTIONS로 바뀌 었습니다 – user2284140

관련 문제