2014-04-15 1 views
4

안녕하세요 h 코드는 다음 코드가 있으며 정상 요청에 대한 ajax 요청을 감지하는 방법을 알고 싶습니다. 익스프레스없이.일반 요청 노드 js에 대한 ajax 요청을 감지하십시오

var http = require('http'); 
var fs = require('fs'); 
var path = require('path'); 
var url = require('url'); 

http.createServer(function (request, response) { 
    console.log('request starting...'); 
console.log("request.url = " + request.url); 
console.log("url = "+ url); 

response.setHeader('content-Type','application/json'); 

var filePath = '.' + request.url; 
if (filePath == './') 
    filePath = './index.html'; 

var extname = path.extname(filePath); 

var contentType = 'text/html'; 
switch (extname) 
{ 
    case '.js': 
     contentType = 'text/javascript'; 
     break; 
    case '.css': 
     contentType = 'text/css'; 
     break; 
} 


fs.exists(filePath, function(exists) { 

    if (exists) 
    { 
     fs.readFile(filePath, function(error, content) { 
      if (error) 
      { 
       response.writeHead(500); 
       response.end(); 
      } 
      else 
      {   
       console.log("contentType = "+contentType); 
       response.writeHead(200, { 'content-Type': contentType }); 
       response.end(content, 'utf-8'); 
      } 
     }); 
    } 
    else 
    { 
     response.writeHead(404); 
     response.end(); 
    } 
}); 

}).listen(8081); 
console.log('Server running at http://localhost:8081/'); 

클라이언트 측에서 나는 아약스 요청을 보내지 만 브라우저 요청에서 요청합니다.

답변

3

HTTP_X_REQUESTED_WITH이 포함 된 경우 request.headers을 확인할 수 있습니다.

HTTP_X_REQUESTED_WITH의 값이 XMLHttpRequest 인 경우 이는 ajax 요청입니다.

예 :

if (request.headers["x-requested-with"] == 'XMLHttpRequest') { 
    //is ajax request 
} 
+0

당신이 maby 이렇게 내 방법을 보여줄 수 ...? – liron

+0

@ user3493458 빠른 예제를 추가했습니다. –

+0

'if (request.xhr) {...}'할 수 있습니다. –

관련 문제