Q&A

jQuery.exec_json로는 act, mid, document_srl, content값을 주면 제대로 입력이 되는걸 확인 하고

 

jQuery.exec_json("board.procBoardInsertComment", {"mid":"게시판", "document_srl":"게시물 번호", "content" : "댓글 내용"}, function(data){ console.log(data) });

안드로이드 앱에서 사용하기 위해 
HTTP POST 방식으로 /xe/index.php?act=procBoardInsertComment에

 

JSON 형식으로 {"mid":"게시판", "document_srl":"게시물 번호", "content" : "댓글 내용"} 을 넣어 보내면 대상을 찾을 수 없다는 메시지를

 

FormUrlEncoded 형식으로 보내면 잘못된 요청입니다라는 메시지를 받네요. 

 

어떤점이 잘 못 된걸까요

댓글 3

  • 리퍼러 체크 통과를 못한것 같네요.
  • 1. 리퍼러 체크 (CSRF 공격 방지)

    2. JSON으로 인코딩해서 보내는 거 아닙니다. 그냥 평범한 HTTP POST 요청을 하시면 돼요.
    아래의 소스를 보시면 알겠지만, exec_json 함수에서도 요청 내용을 JSON으로 인코딩하지는 않고 있습니다.

    (그러면서도 헤더는 Content-Type: application/json으로 설정하는 참 이상한 XE입니다.)
    https://github.com/xpressengine/xe-core/blob/master/common/js/xml_handler.js#L411

  • JSON 형식으로 보내면 안되는군요 이런 ㅠ.ㅠ

    두분께서 댓글 달아주신대로

    헤더에 리퍼러 넣고
    그냥 FormUrlEncoded 방식으로 보내니 정상적으로 댓글이 달리네요 !

    답변 감사합니다!