2016-08-08 6 views
0

은 내가 GET 요청을 수행 할 수 있어요 nodeJs 의 일부 API를 노출 한 nodeJS,하지만 난 POST 요청을하려고 할 때 다음과 같은 오류가 나는 이것보다405 : 방법 허용되지 않는 오류가

405: Method not allowed error 
{ 
"code": "MethodNotAllowedError" 
"message": "POST is not allowed" 
} 

다른 무엇입니까 오류에 대한 정보를 얻을 수 없습니다. 나는 다음과 같은 것들을 많이 시도했지만 그들 중 누구도 내가 이미 POST 요청에 대한 핸들러를 정의했다고 가정

global.restify = require('restify'); 
global.appRoot = path.resolve(__dirname); 
global.app = restify.createServer({name:'test'}); 
    app.opts(/.*/, function (req,res,next) { 

     // res.header("Access-Control-Allow-Methods", req.header("Access-Control-Request-Method")); 
     // res.header("Access-Control-Allow-Headers", req.header("Access-Control-Request-Headers")); 
    // res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); 

     //res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE'); 
     //res.header("Access-Control-Allow-Headers", "X-Requested-With"); 

     res.header("Access-Control-Allow-Origin", "*"); 
      res.header("Access-Control-Allow-Headers", "X-Requested-With"); 
      res.header('Access-Control-Allow-Headers', 'Content-Type'); 
     res.send(200); 

     //res.send(200); 
     return next(); 
    }); 
+1

'app.opts() 란 무엇입니까? 서버에서 사용중인 웹 프레임 워크는 무엇입니까? – robertklep

+0

프레임 워크 복원 – anand

+0

POST 할 경로를 표시 할 수 있습니까? 그것과는 별개로 (나는 그것이 관련 있다고 생각하지 않는다) : 나는 Restify에 지나치게 친숙하지 않지만, 다른 핸들러에게 요청을 전달해야하는 미들웨어에서 작동하는'res.send (200) '무엇인가? – robertklep

답변

0

.. 작동하지 않습니다.

코드를 보면 CORS를 지원한다고 가정합니다.

server.use(restify.CORS()); 

또는

server.use(restify.CORS({ 
    origins: ['https://foo.com', 'http://bar.com', 'http://baz.com:8081'], // defaults to ['*'] 
    credentials: true,     // defaults to false 
    headers: ['x-foo']     // sets expose-headers 
})); 

측 노드 : send 세트 헤더와 응답을 끝내는 적절한 방법은 restify would be에서 그렇게 할 수 있습니다!

관련 문제