나는 express.js를 사용하고 있으며 호출을 시작하는 도메인을 알아야합니다. 이것은 간단한 코드입니다
app.get(
'/verify_license_key.json',
function( req, res ) {
// do something
req
또는 res
개체 에서 도메인을 가져 오려면 어떻게합니까 ? somesite.com 또는 someothersite.com에서 API를 호출했는지 알아야합니다. 나는 모두의 console.dir 일을 시도 req
하고 res
있지만, 나 또한 문서를 읽을 수 있지만 그것은 나에게 아무런 도움을주지 않았다, 거기에서 아무 생각 없어.
답변
HOST
헤더 에서 검색해야합니다 .
var host = req.get('host');
HTTP 1.0에서는 선택 사항이지만 1.1에서는 필요합니다. 또한 앱은 항상 자체 요구 사항을 부과 할 수 있습니다.
이것이 cross-origin 요청 을 지원하는 경우 대신 Origin
헤더 를 사용합니다 .
var origin = req.get('origin');
일부 교차 출처 요청에는 ” preflight “요청을 통한 유효성 검사가 필요합니다 .
req.options('/route', function (req, res) {
var origin = req.get('origin');
// ...
});
클라이언트의 IP를 찾는 경우 다음을 사용하여 검색 할 수 있습니다.
var userIP = req.socket.remoteAddress;
서버가 프록시 뒤에있는 경우 프록시의 IP를 제공 할 수 있습니다. 사용자의 IP를 얻을 수 있는지 여부는 프록시가 전달하는 정보에 따라 다릅니다. 그러나 일반적으로 헤더에도 있습니다.
답변
대신에:
var host = req.get('host');
var origin = req.get('origin');
다음을 사용할 수도 있습니다.
var host = req.headers.host;
var origin = req.headers.origin;
답변
Express 4.x에서는 req.hostname
포트없이 도메인 이름을 반환 하는를 사용할 수 있습니다 . 즉 :
// Host: "example.com:3000"
req.hostname
// => "example.com"
답변
최근에 ‘Origin’요청 헤더를 가져 오는 데 문제가 발생하여이 질문을 발견했습니다. 그러나 결과와 상당히 혼란스럽고 req.get('host')
사용되지 않으므로 Undefined
. 사용하다,
req.header('Origin');
req.header('Host');
// this method can be used to access other request headers like, 'Referer', 'User-Agent' etc.