2013-03-23 5 views
4

허용되지 않습니다 나는 다음과 같은 문제가 있습니다, 나는 메시지가 : 메소드 GET은 요청 된 URL

나는 플라스크 응용 프로그램 작업, 그리고 서버에 일부 데이터를 전달할를 AJAX를 통해. 나는이 AJAX 일에 꽤 새로운 것이므로, 나는 옳은 것을 얻을 수 없다. 사용자가 클릭이 아이콘을, 내가 변수 메시지에 저장 jQuery.post를 통해 일부 데이터를 전달하려는 나의 클라이언트 측에

, 내 서버 측에서

jQuery("#icon_ID").click(function() { 
    var message = { 
     'GRAPH_TYPE': graphType 
    }; 
    var _sendOnSuccess = function() { 
    } 

    var jqxhr = jQuery.post('/graph', message, _sendOnSuccess, 'json'); 
}); 

, I

@app.route('/graph', methods = ['POST']) 
@login_required 
def physical_graph(): 
    ret_data = request.form['GRAPH_TYPE'] 
    return "" 

내가 지금하고 싶은 모든 서버 측에 GRAPH_TYPE에 액세스 할 수 있습니다 : 다음과 같은 코드가 있습니다.

허용되지

방법 메소드 GET가 요청 된 URL에 허용되지 않은 : 나는 아이콘을 클릭 그러나, 나는 오류 메시지가 표시됩니다.

실제로 파이썬이 내가 POST 메서드를 사용할 때 GET 메서드를 사용하는 이유를 실제로 이해하지 못합니다.

도와 주실 수 있습니까? 이 문제를 해결하려면 어떻게해야합니까? 제가 사용할 수있는 다른 방법이 있다면, 저에게 어떤 조언을 해줄 수 있습니다. jQuery 외에도 다른 JavaScript 라이브러리를 사용하고 싶지는 않습니다.

미리 감사드립니다.

+2

같은 JSON.stringify을 사용할 수 있습니다 어떻게? – alex

+0

파이어 폭스의 firebug 콘솔이나 크롬의 네트워크 XHR을 사용하여 ajax 호출의 세부 정보를 확인합니다. – Vassilis

+0

콘솔에서. 'icon_ID'아이콘을 클릭하면 얻을 수 있습니다 : GET/graph HTTP/1.1 "405, 즉 POST 대신 GET을했음을 의미하지만, 왜 그런지 모르겠습니다. – Belphegor

답변

1

그것은 당신이 경우

var message = { 
    'GRAPH_TYPE': graphType 
}; 

처럼 data으로 URL 인코딩에 jQuery 시도 객체를 object을 통과하기 때문에 그리고 기본적으로 application/x-www-form-urlencoded; charset=UTF-8 ANS는 GET 요청을 전송 데이터 형식으로 전송합니다. 당신은 데이터 매개 변수 jQuery 문자열을 전달하는 것으로이 문제가 있는지 확인 극복하고 이루어지고 있었다 이것은 당신

당신이 실제 POST를 확인 했는가
var message = JSON.stringify({ "GRAPH_TYPE": graphType }); 
+0

[jQuery.post] (http://api.jquery.com/jQuery.post/)는 [PlainObjects] (http://api.jquery.com/Types)를 허용합니다. #PlainObject)'message'는 괜찮을 것입니다. –

+0

@Sheikh Heera : 길을 갈 때 - 똑같습니다. 그래서 문제가되지 않을 것입니다. 다른 아이디어가 있습니까? – Belphegor