2012-11-21 4 views
0

Tower.js 0.4.2-20을 사용하고 있습니다.POST 응답을받을 수 없습니다.

HTML FORM 태그에 대한 GET 및 POST 요청을 보냈습니다.
'GET'요청은 문제가 없습니다. 'POST'요청은 다음 오류가 반환됩니다.

라우터 설정이 누락 되었습니까?

routes.coffee :

Tower.Route.draw -> 
    @resources 'service' 
    @match '/service/add', to: 'service#add', via: 'post' 

ServiceController.coffee :

class ServiceController extends App.ApplicationController 
    index: -> 
    @render text: "GET" 
    create: -> 
    @render text: "POST" 
    add: -> 
    @render text: "ADD" 

index.html을 :

<form method='POST' action='service/add'> 
    <div><input type='submit' value='Add'></div> 
</form> 

오류 :

Error: Forbidden 
at Object.exports.error (/var/www/html/melissa/manage/development/yoshiaki-tanaka/node_modules/tower/node_modules/express/node_modules/connect/lib/utils.js:44:13) 
at Object.module.exports [as handle] (/var/www/html/melissa/manage/development/yoshiaki-tanaka/node_modules/tower/node_modules/express/node_modules/connect/lib/middleware/csrf.js:54:41) 
at next (/var/www/html/melissa/manage/development/yoshiaki-tanaka/node_modules/tower/node_modules/express/node_modules/connect/lib/proto.js:190:15) 
at multipart (/var/www/html/melissa/manage/development/yoshiaki-tanaka/node_modules/tower/node_modules/express/node_modules/connect/lib/middleware/multipart.js:57:27) 
at module.exports (/var/www/html/melissa/manage/development/yoshiaki-tanaka/node_modules/tower/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:57:9) 
at IncomingMessage.module.exports (/var/www/html/melissa/manage/development/yoshiaki-tanaka/node_modules/tower/node_modules/express/node_modules/connect/lib/middleware/urlencoded.js:68:11) 
at IncomingMessage.EventEmitter.emit (events.js:115:20) 
at Object.resume (/var/www/html/melissa/manage/development/yoshiaki-tanaka/node_modules/tower/node_modules/express/node_modules/connect/node_modules/pause/index.js:25:18) 
at store.get.next (/var/www/html/melissa/manage/development/yoshiaki-tanaka/node_modules/tower/node_modules/express/node_modules/connect/lib/middleware/session.js:311:15) 
at /var/www/html/melissa/manage/development/yoshiaki-tanaka/node_modules/tower/node_modules/express/node_modules/connect/lib/middleware/session.js:333:9 
+0

오류가 그렇게 중요하지 않습니다. 우리가 당신을 도울 필요가 귀하의 노드 애플 리케이션 코드 – toxicate20

+0

죄송합니다. 노드 애플 리케이션 코드에 쓴. – YASAI

답변

6

첫 번째 추측 : 양식의 상대 URL이 문제입니다. formaction 속성을 /service/add으로 변경하고 이것이 도움이되는지 확인하십시오. 403 금지 된 오류는 아마도 POST 요청이 예상 한 다른 URL 경로로 이동하고 있음을 의미합니다. 예를 들어 양식이 /pages/service 인 경우 양식은 상대 URL로 인해 /pages/service/service/add에 제출됩니다.

두 번째 추측 : 아. 알았다. crsf 모듈은 아마 (같은 또는 무언가) 크로스 사이트 요청 위조 a를 <input type="hidden" name="crsf_token" value="YOUR_CRSF_TOKEN"> 태그의 형태를 취할 것입니다 양식에 토큰을 검사하는지

at Object.module.exports [as handle] (/var/www/html/melissa/manage/development/yoshiaki-tanaka/node_modules/tower/node_modules/express/node_modules/connect/lib/middleware/csrf.js:54:41) 

. CRSF 토큰을 포함하여 적절한 <form> 태그 HTML을 작성하는 방법에 대해 사용중인 CRSF 미들웨어의 문서를 읽으십시오.

+0

Peter Lyons 감사합니다. 양식의 작업 속성이 '추가'로 변경되면 현재 경로는 'example.com/service'입니다.

하지만 같은 오류가 발생합니다. – YASAI

관련 문제