0

grunt タスク ランナーでアプリケーションを実行していますが、次のエラーがスローされます。

POST http://localhost:8080/stub/cms/myalerts2.json 405 (メソッドは許可されていません)

Gruntfile.js で次のことを試しました

 connect: { 
                server: { 
                    options: { 
                        keepalive: true, 
                        port: 8001, 
                        protocol: 'http', 
                        hostname: '*', 
                        base: 'dis', 
                        directory: 'dis', 
                        open: { 
                            target: 'http://localhost:8001/mydemo.html', 
                            appname: 'open' 
                        },

                        middleware: function(connect, options, middlewares) {
                    middlewares.unshift(function(req,res,next){
                            res.setHeader('Access-Control-Allow-Origin', req.headers.origin);
                            res.setHeader('Access-Control-Allow-Credentials', true);
                            res.setHeader('Access-Control-Allow-Methods', 'GET,HEAD,PUT,POST,DELETE');
                            res.setHeader('Access-Control-Allow-Headers', req.headers['access-control-request-headers']);
                        });
                        return middlewares;
                }   
} 
        } 
    },

それでも実行できません。どんな助けや提案も大歓迎です。前もって感謝します

4

2 に答える 2

0

イライラする数日後、ついに私のコードが機能します。以下の私のコードを見てください:-

connect: { 
            server: { 
                options: { 
                    keepalive: true, 
                    port: 8001, 
                    protocol: 'http', 
                    hostname: '*', 
                    directory: 'dist', 
                    open: { 
                        target: 'http://localhost:8001/myDemo.html', 

                    },
                        middleware: function(connect, options, middlewares) {

                                middlewares.unshift(function(req, res, next) {
                                    res.setHeader('Access-Control-Allow-Credentials', true);
                                    res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
                                    res.setHeader('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
                                    **if (req.method.toUpperCase() == 'POST') req.method='GET';**
                                    return next();
                                });

                                return middlewares;
                        }

                } 
            } 
        },

星マークの行を参照してください。つまり、if (req.method.toUpperCase() == 'POST') req.method='GET';このトリックを実行したところ、うまくいきました。この記事は私にも役立ちますhttps://github.com/gruntjs/grunt-contrib-connect#middleware

于 2016-11-30T11:15:34.600 に答える
0

これまでのところ、コードの次の更新を試みましたが、Method not Allowed 405 エラーを取り除くことができましたが、現在、「リソースの読み込みに失敗しました: サーバーは 404 (見つかりません) のステータスで応答しました」というメッセージが表示されます。以下の私のコード: -

connect: { 
            server: { 
                options: { 
                    keepalive: true, 
                    port: 8001, 
                    protocol: 'http', 
                    hostname: '*', 
                    base: 'dist', 
                    directory: 'dist', 
                    open: { 
                        target: 'http://localhost:8001/myDemo.html', 
                        appname: 'open' 
                    },
                        middleware: function(connect, options, next) {
                              return [
                                function(req, res, next) {
                                 res.setHeader('Access-Control-Allow-Credentials', true);
                                 res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
                                 res.setHeader('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
                                 next();
                              }];
                        }

                } 
            } 
        },

任意の提案をいただければ幸いです。

于 2016-11-29T11:56:36.847 に答える