2013-07-11 4 views
2

내가 데이터 객체 내에서 개체를 전달할 필요가 반대하지만 JQuery와 아약스 : 데이터 객체는

을 작동하지 않습니다 나는 내가 매우 유용이 매우 사이트, JSON

에 양식 데이터를 변환에있는 다음과 같은 기능을 사용하여

다음 개체를 하위 개체로 전달해야하지만 작동하지 않습니다. 필터도

var filters = $('.filtersForm').serializeObject(); 

$.ajax({ 
    type: 'GET', 
    data: {script:'search',page:page,filters:filters}, 
    success: function(data){ 
    } 
}); 

enter image description here

방법 "필터"사진에 없습니다를 참조 관리자의 쿼리 문자열 매개 변수에 표시되지

누군가가 설명해 주시겠습니까 왜 그럴 수 없어 그런 물건을 건네 줘?

+0

왜 투표가 내려 집니까? –

+1

JSON.stringify() 대신 serializeObject 함수를 사용하는 특별한 이유가 있습니까? – Jon

답변

4

대신을 시도해보십시오

$.ajax({ 
    type: 'POST', 
    data: JSON.stringify({ 
    script: 'search', 
    page: page, 
    filters: filters 
    }), 
    contentType: 'application/json' 
}); 
  1. 변경 유형GET에서 POST에. 이렇게하면 요청 본문을 보낼 수 있습니다.
  2. 내장 된 JSON 객체를 사용하여 데이터을 문자열 화하여 JS 객체를 JSON 형식 문자열로 문자열을 지정합니다. (구형 브라우저에는이 내장 객체가 없을 수도 있습니다.이 경우 json2.js을 사용하여 추가하십시오.)
  3. 콘텐츠 유형에서 application/json으로 설정하십시오. 이것은 기본적으로 request-body가이 유형이라는 것을 나타내며, 이는 JSON으로 문자열을 지정했기 때문입니다.
+0

왜 초기 객체를 문자열로 변환해야합니까? –

+0

자바 스크립트 객체를 JSON 형식의 문자열로 serialize하는 것은 복잡한 데이터를 서버에 보내는 가장 좋은 방법입니다 (부분 의견). –

+0

그럼에도 불구하고 객체를 보내는 것은 잘 작동하지만, stringyfiying하지 않고 객체 내에서 객체를 보낼 수없는 이유는 무엇입니까? 그림을 사용하여 질문을 업데이트했습니다. –

0

봅니다에서 지정할에 filters
시도의 예를 들면 : jsonfilter = JSON.stringify(filters);
개봉하면 반품으로 jsonResult이 당신의 HTTPWebMethode에서 을 시도 할 수 있습니다 MVC와 ASP.Net을 사용하여 매개 변수

을에서 지정할 시도 할 수있는 경우
public JsonResult myPostMethode(string script,object page,List<object> filters){ 

    //make some usefull 
    var model = script; 
    return(model,JsonRequestBehavior.AllowGet); 
}