2012-05-23 7 views

Trả lời

56

Thực hiện một middleware như vậy:

app.use(function (req, res, next) { 
    res.removeHeader("X-Powered-By"); 
    next(); 
}); 

Xem thêm thông tin về làm thế nào để loại bỏ một tiêu đề:

http://nodejs.org/api/http.html#http_response_removeheader_name

Cập nhật:

tôi đã không biết tại thời điểm đó rằng có một cách tốt hơn để làm việc đó (như nhiều đề nghị, sau):

app.disable('x-powered-by'); 
+0

Đây không phải là câu trả lời mong muốn/hoàn hảo/chính xác. Xem một với upvotes nhất. Chúc mừng! – ptz0n

+1

Đúng, cập nhật câu trả lời của tôi để phản ánh điều đó. – alessioalex

+0

Tôi vừa thử nghiệm 'app.disable ('custom1');' Và nó hoạt động tốt (nó đã loại bỏ tiêu đề khỏi phản hồi của máy chủ). Nhưng sau đó tôi nhận xét ra 'app.disable ('custom1');' và tiêu đề xuất hiện một lần nữa ... Điều này có bình thường không? Tôi không còn có 'res.header (" custom1 "," test ");' trong mã của tôi vì tôi không muốn tiêu đề đó nữa, nhưng nó vẫn xuất hiện ... – neoDev

124

Không tháo nó; hỏi Express không để tạo ra nó ở nơi đầu tiên:

https://stackoverflow.com/a/12484642/506073

Đến app.js của bạn và chỉ sau:

var app = express(); 

Add:

app.disable('x-powered-by'); 
+9

IMO, điều này sẽ là câu trả lời - middleware là một hiệu suất hit trên mọi yêu cầu, tại sao không chỉ ngăn chặn các tiêu đề được sinh ra ở nơi đầu tiên? –

+1

Người ta cũng có thể sử dụng 'app.set ('x-powered-by', false); ' – tfmontague

+0

Điều này chỉ xóa các tiêu đề tùy chỉnh tạm thời khi được đặt, nếu tôi nhận xét dòng này trong mã của tôi, tiêu đề tùy chỉnh sẽ xuất hiện lại, vì vậy không bị xóa ... và tôi cần xóa nó! Tôi cũng đã thử 'res.removeHeader (" custom1 ");' nhưng does't làm việc ... – neoDev

2

đoạn Middleware từ: Can't get rid of header X-Powered-By:Express

function customHeaders(req, res, next){ 
    // Switch off the default 'X-Powered-By: Express' header 
    app.disable('x-powered-by'); 

    // OR set your own header here 
    res.setHeader('X-Powered-By', 'Awesome App v0.0.1'); 

    // .. other headers here 

    next(); 
} 

app.use(customHeaders); 

// ... now your code goes here