2014-08-31 9 views
0

다음 ajax 요청에서 노드 서버에 이름이 fileName 인 파일에 대한 작업을 요청합니다. 나는 서버 측에 요청을 로그인 할 때Jquery Ajax 데이터가 표시되지 않습니다.

아약스

$.ajax({ 
    type: "POST", 
    data: {'imageFileName': fileName}, 
    contentType: "json", 
    url: '/myRoute', 
    success: function(data){ 
     if(!data){ 
      errorMessage(); 
     } 
     else{ 
      display(data); 
     } 
    } 
}) 

라우터는

router.post('/myRoute', function(req, res){ 
    console.log(req.imageFileName) //Undefined 
    res.end(); 
}) 

그러나, 나는 fileName없이 거대한 객체를 얻는다. 요청의 이름이 req 인 경우 req.imageFileName은 정의되지 않은 값을 나타냅니다. 서버 측에서 fileName에 액세스 할 수 없다는 것을 어떻게 잘못하고 있습니까?

+0

파일 또는 파일 이름 만 보내시겠습니까? – hjpotter92

+0

파일 이름 만 입력하십시오. – goodcow

+1

'contentType'은'json'뿐만 아니라'application/json'이어야한다고 생각합니다. MIME 타입입니다. – keeshux

답변

0

데이터에서 따옴표를 제거하십시오. 또한 파일 이름에있는 내용을 한번 확인해보십시오.

$.ajax({ 
    type: "POST", 
    data: {imageFileName: fileName}, 
    contentType: "json", 
    url: '/myRoute', 
    success: function(data){ 
     if(!data){ 
      errorMessage(); 
     } 
     else{ 
      display(data); 
     } 
    } 
}) 

http://api.jquery.com/jquery.ajax/

+0

따옴표는 차이가 없으며 이름이 정확합니다. – goodcow

0

는 다음을 시도해보십시오

$.ajax({ 
type: "POST", 
data: {'imageFileName': fileName}, 
url: '/myRoute', 
success: function(data){ 
    if(!data){ 
     errorMessage(); 
    } 
    else{ 
     display(data); 
    } 
} 
}) 

서버 측 나는 그것의 콘텐츠 형식 그게 당신에게 문제를 제공 한 경우보고 싶어

var bodyParser = require('body-parser'); 
app.use(bodyParser.urlencoded({ 
extended: false 
})) 

.

+0

나는'app.use (bodyParser.json());을 가지고있다. 내 app.js에서 app.use (bodyParser.urlencoded()); – goodcow

+0

아니, 제안을 주셔서 감사합니다 작동하지 않습니다. – goodcow

+0

대신 사용해 볼 수 있습니까? 문제가되는 콘텐츠 유형인지 확인하고 싶습니다. – SivaDotRender

0

태그는 body-parser에서 제공 한대로 요청의 body에 있습니다. 그러므로 이것은 효과가있었습니다.

router.post('/myRoute', function(req, res){ 
    console.log(req.body.imageFileName) //Correct 
    res.end(); 
}) 
관련 문제