2014-07-11 3 views
1

jax 요청을 통해 js 객체를 서버에 전송해야합니다. 은 노드 js에 Sequelize orm이있는 sql 쿼리에 대한 매개 변수를 포함하는 개체입니다. 예를 들면 다음과 같습니다.ajax 요청을 사용하여 js 객체 전달

var data = 
{ 
    include: [ 
     { model: model.Shop }, 
     { model: model.Product, 
      include: [ 
       { model: model.File } 
      ] 
     } 
    ] 
} 

여러 수준에 중첩 된 개체 배열을 포함 할 수 있습니다. 필요한 경우 를 보내기 전에이 같은 유효한 JSON으로 변환 할 수 있습니다

var data = 
{ 
    "include": [ 
     { "model": "model.Shop" }, 
     { "model": "model.Product", 
      "include": [ 
       { "model": "model.File" } 
      ] 
     } 
    ] 
} 

내가 JSON로 보내려고했습니다

$.ajax({ 
    //... 
    data: data 
}); 

문제는 그 때 노드 서버 받은 문자열의 JSON.parse를 수행하면 각 속성의 값은 문자열이며 모델 객체로 인식되지 않습니다.

어떻게 내 서버가이를 이해할 수 있습니까?

+0

* "필요한 경우 유효한 JSON으로 변환 할 수 있습니다."* JSON이 아니며 여전히 자바 스크립트 객체입니다. '{ "foo": 42}'는 {foo : 42}와 같습니다. –

답변

3

$.ajax({ 
    data: JSON.stringify(data) 
}); 
+0

문제는 Ember 클라이언트 (노드 서버에 정의되어 있음)에 정의되어 있지 않은 "model.Shop"헤더를 보내려고한다는 것입니다. 그래서 나는 그것을 할 수있는 방법이 없다고 생각합니다; 아마도 문자열을 보낸 다음 노드 서버에서 구문 분석하는 함수를 작성해야합니다. –

0

JSON.stringify 수동으로 넣어 데이터 객체에 인용하지 마십시오 사용해보십시오.

JSON.stringify(data) 

그것은 허용 문자열 형식이 변환됩니다보십시오.

관련 문제