0
我試圖發送HTTP POST使用參數一樣{name: myname}
錯誤:無法設置頭髮送之後(不包括快遞和bodyparser)
後端代碼:
var qs = require('querystring');
...
case "POST":
if(request.url === "/api/user/delete"){
//response.end('{}');
var body = '';
request.on('data', function (data) {
body += data;
// 1e6 === 1 * Math.pow(10, 6) === 1 * 1000000 ~~~ 1MB
if (body.length > 1e6) {
// FLOOD ATTACK OR FAULTY CLIENT, NUKE REQUEST
response.writeHead(413, {'Content-Type': 'text/plain'}).end();
request.connection.destroy();
}
else{
response.writeHead(200, {"Content-Type": "application/json"});
response.end(JSON.stringify(qs.parse(body)));
}
});
request.on('end', function() {
// use POST
var POST = qs.parse(body);
console.log(POST); //log shows '{'{myname}':''}' i need output like {name:myname}
});
}
...
添加一張支票
headersSent
的'data'事件可以觸發一次以上。 – robertklep那麼,你打電話給'response.end(JSON.stringify(qs.parse(body)));'你的第一部分數據。下一個塊會出錯,因爲你已經發送了響應。這是一種預期的行爲。但沒有「那種」部分。 – cviejo