2016-08-08 7 views
0

私はGETリクエストを実行することができる午前nodeJs にいくつかのAPIを公開してきたが、私はPOSTリクエストをしようとすると、私は次のエラーに私はこれ以外に405:メソッド許可されていないエラー、nodeJS

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()'とは何ですか?あなたはサーバー上でどのようなWebフレームワークを使用していますか? – 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であることを行うための適切な方法!

関連する問題