2011-03-27 12 views
0

이봐,이 URL을 1234에서 /? 나는 그JSON 개체를 가져올 수 없습니다

SurveyJson = {question:$("#question").val(),choice:Choice,count:Count}; 
var jsonString = JSON.stringify(SurveyJson); 

같은 JSON 객체를 생성하고 난 AJAX 호출을 통해 JSON 개체를 검색하는 것을 시도하고있다 FMT = JSON

var url = "1234?fmt=json"; 
$.ajax({ 
    url: url, 
    type: "get", 
    dataType: 'json', 
    success: function (data) { 
     $("#display").html(data); 
    } 
}); 

어떻게 데이터를 표시 할 수 없습니까? 나는 dataType 매개 변수를 교차하여 다른 것들을 똑같이 유지한다면, 어떻게 든 알 수없는 json 문자열을 얻을 수 있다는 것을 시도했다. 그리고 나는 도움을 줄 수는 없지만 비슷한 문제가있는 사람들은 "get"대신 "post"를 넣는다는 것을 알았습니다. 그것이 맞다면 왜 그런가요? 고맙습니다.

+0

div에 넣으려는 경우 왜 json으로 데이터를 가져와야합니까? 데이터를 표시하려면 텍스트 형식의 데이터를 가져와야합니다. (json 객체는 json 문자열이 아닙니다.) – Oscar

+0

JSON.stringify (SurveyJson)는 이것이 json 객체가 아닌 경우 json을 처음 접하는 사람에게만 알립니다. 어떻게 만들 수 있습니까? 감사합니다 –

+0

@ Clinteney 오스카는 당신이 잘못 출력하고 있다는 것을 의미합니다. '$ ("# display") .html (data.question);와 같이 출력하십시오. '.question'은 당신이 그 키에 대한 값을 얻고 싶다는 것을 의미합니다. –

답변

0

에 아약스 호출을 변경해야합니다 귀하의 "콜백 URL"1234 /? FMT = JSON은 예를 들어 JSON

값을 하드 코딩 시도하고 작동하는지, 해당 URL에서 코드를 변경할 반환 이것을 HTTP 응답으로 출력하고 다른 것들을 제거하십시오. 이 줄에 표시된 것과 정확히 일치하는 것만 응답하면됩니다.

{question:"my question",choice:"a choice",count:3} 

변경하여 호출 코드 : 두 개의 경고 상자가 표시되면

var url = "1234?fmt=json"; 
$.ajax({ 
    url: url, 
    success: function (data) { 
     alert(data); 
     alert(data.question); 
    } 
}); 

; 첫 번째 것은 "[Object object]"(브라우저에 따라 약간 다름)의 내용이고 두 번째 경고는 "내 질문"이며, 그러면 좋은 시작이됩니다. 다시 게시하고 알려 주시면 거기에서 가져 가겠습니다.

또한 "type"속성을 "get"또는 "post"로 설정하면 HTTP 요청의 응답 텍스트를 1234 /? fmt = json으로 구문 분석 할 때 브라우저의 유효한 json 객체 . 가져 오기 및 게시에는 중요한 차이점이 있지만 http 요청의 응답 텍스트를 구문 분석하는 것과 관련이 없습니다.

+0

이 게시물의 의도는 서버에서 올바른 json을 반환하는 지점에 도달하는 것입니다. 그 후에 우리는 당신에게 나머지 길을 줄 수 있습니다. –

+0

잘 도와 주셔서 감사합니다. 방금 json에서 여행을 시작했습니다. 내가 1234 년에 한 일은? fmt = json은 내가 한 일이다. SurveyJson = {question : $ ("# 질문") val(), choice : Choice, count : Count}; \t var jsonString = JSON.stringify (SurveyJson); 잘하면 javascprit 개체를 json 개체로 변환하지만 누군가 json 개체 대신 json 문자열이 있다고 말하면 json.org에서 learnd를 사용하여 stringify를 사용합니다 –

+0

따라서 AJAX에서 데이터를 경고했습니다. 그리고 당신이 말한 것처럼 json 객체 대신 html로 전체 페이지를주었습니다 ... json 객체를 만드는 방법을 모릅니다 .. 감사합니다. –

0

데이터 유형을 제거하면 기본적으로 html로 반환됩니다 (하나의 긴 문자열). 데이터를 문자열로 출력하는 것이 좋습니다 (dataType 'html'을 작성하거나 제거하여).이 JSON validator을 사용하여 문제가 없는지 확인하십시오.

GET 및 GET은 요청 방법을 정의합니다. GET은 쿼리 문자열 (url)을 이용합니다. 예제 URL을 기반으로 GET을 사용하려고합니다. 확인이

$.ajax({ 
    url: '1234', 
    type: "get", 
    data: { 'fmt': 'json' }, 
    dataType: 'json', 
    success: function (data) { 
     $("#display").html(data); 
    } 
});

관련 문제