2017-08-23 14 views
1

node.jsサーバーを使用してフロントエンドに応答を送信します。 MyNodeServer.jsコードにsetHeadersを追加したときに、「送信後にヘッダーを設定できません」というエラーが表示されます。私のコードは下に貼り付けられています。さらに「送信後にヘッダーを設定できません」

web server listening to port 8080, started 
    _http_outgoing.js:367 
     throw new Error('Can\'t set headers after they are sent.'); 
     ^

    Error: Can't set headers after they are sent. 
     at ServerResponse.setHeader (_http_outgoing.js:367:11) 
     at ServerResponse.writeHead (_http_server.js:183:21) 
     at ...\MyNodeServer.js:71:26 
     at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:416:3) 

MyNodeServer.js

var myHttp = require("http"); 
var url = require("url"); 
var qString = require("querystring"); 
var fs = require('fs'); 

var myEvents = require('./customEvents'); 

var myAppWebServer = myHttp.createServer(function(request, response){ 

    response.setHeader('Access-Control-Allow-Origin', 'http://localhost:8080'); 

    response.setHeader('Access-Control-Allow-Methods', 
      'GET, POST, OPTIONS, PUT, PATCH, DELETE'); 

    response.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type'); 
    response.setHeader('Access-Control-Allow-Credentials', true); 

    if (request.method === "OPTIONS") { 
     return response.status(200).end(); 
    } 

    var query =url.parse(request.url).query; 
    response.writeHead(405, {'content-type':'text/html'}); 
    var yourVisit; 
    var pName = url.parse(request.url).pathname; 
    if(pName==='/register'){  
     response.end('{ "name":"xxx", "city":"yyy"}'); 
    }else if (pName==='/login'){ 
     fs.readFile("pages/login.html", function (error, pgResp) { 
      response.writeHead(200, { 'Content-Type': 'text/html' }); 
      response.write(pgResp); 
      response.end(); 
     }); 
    } 
}); 

myAppWebServer.listen(8080); 

答えて

4

レスポンスを複数回送信されています。 (評判が低いため、コメントできません)

ステータスコードは2度書き込まれます。

response.setHeader('content-type', 'text/html'); 
+0

大きな助けに変更

response.writeHead(405, {'content-type':'text/html'}); 

!!それはうまく動作します。どうもありがとうございます。 – user2613946

+0

あなたは大歓迎です! – explorer

関連する問題