2009-03-17 2 views
7

Ajax 요청 (jQuery 사용)에서 나는 JSON 응답을 반환합니다.jQuery에서 JSON 결과로 HTML을 반환하고 있는데 어떻게해야합니까?

그래서 json.Html에는 div 안에 추가 할 문자열이 있습니다.

서버 측에서 HTML을 전혀 이스케이프 처리해야합니까? . 당신은 따옴표와 슬래시 (알라 \ "와 \\) 내용을 탈출 할 때 JSON 문자열에 투입 할에 슬래시를 추가해야

return Content("{html: ???????}, "application/json"); 

답변

14

다른 해결책은 단순히 HTML을 반환하고 jQuery의:

$('#someDiv').load('servershtml.html'); 

비록 사용자가 원하는 방식으로 작업을 수행하려면 큰 따옴표와 백 슬래시를 탈출하기 만하면됩니다.

specification은 매우 읽기 쉽고 짧습니다.

7

HTML : 내 MVC 액션에서

, 나는 반환하고 :) 물론

, 당신의 문자열 (X) HTML 사업부에 삽입 할 때 폭발하지 않도록.

잘 형성 자체가 있는지 확인 문자는 JSON 문자열 내부의 아무 의미없는, 그래서 그들은 괜찮아요
+0

약 \ a \ b \ c 모두 괜찮습니까? – Blankman

1

dataTypeconfiguration option'json'으로 설정하면 complete 이벤트로 전달 된 개체가 해당 자바 스크립트 개체가됩니다. 기본적으로 jQuery는 응답 콘텐트 (제대로 형식이 지정된 JSON이라고 가정)를 javascript 객체로 변환하는 작업을 수행한다. 예 ...

$.ajax({ 
    dataType: 'json', 
    complete: function(myJsonObject) { 
     alert(myJsonObject.someMember); 
    } 
}); //$.ajax({ 

당신이 아주 쉽게 JSON을 생성 할 수 있기 때문에 나는이 Json.NET을 탐구하는 것이 좋습니다 것, .NET에서 올바른 형식의 JSON을 생성하는 방법을 궁금해하는 경우. HTML과 JSON을 만들 때

6

당신은 또한 후 탈출 따옴표 문자CLRF 문자해야하고 그것은 HTML의 벌금을 반환합니다.

나는 AJAX 요청에서 호출 된 oracle 프로 시저에서 pl/sql을 사용하여 작업했습니다. 원한다면 구현을 게시 할 수 있습니다.

http://www.jsonlint.com/에서 출력을 테스트하여 유효한지 확인해야합니다.

그래서

{ 
    "id": "1", 
    "html_value": "<a href=\"http://www.google.com\">test link returnin html code</a>" 
} 

때문에 CLRF 문자의

{ 
    "id": "1", 
    "html_value": "<a href=\"http://www.google.com\">test link returnin 
html code</a>" 
} 

에서 diffrent입니다. 서버 측의 것을 &nbsp으로 대체해야합니다. 또는 <br/>.jQuery를에

$htmlSnippet = '<a href="#"></foo>'; 
return json_encode(array("html" => $htmlSnippet)); 

당신이 중 하나를 dataType와 'JSON'를 선언 (위 답변 참조) 또는 디코딩이 도움이

희망, 알렉스

1

당신의 PHP로 json_encode를 사용하는 경우 당신을위한 트릭을 수행 by jQuery.parseJSON

5

나는 PHP로 나의 경험을 게시 할 것이다. 도움이되기를 바랍니다. 기능 utf8_encode()를 통해 UTF-8의 모든 문자열을 인코딩하는 json_encode() 이후

json_encode(array('data1' => 'String data with text', 
       'data2' => '<a href="www.stackoverflow.com">The Site</a>')); 

는 UTF-8 문자열과 함께 잘 작동, 내가 제안 :

일반적으로, 하나의 예를 들어 데이터를 인코딩하기 위해 json_encode() 기능을 사용하여 즉,

json_encode(array(utf8_encode('data1') => utf8_encode('String data with text'), 
       utf8_encode('data2') => utf8_encode('<a href="www.stackoverflow.com">The Site</a>'))); 

또한, 특수 문자를 사용하는 경우 (이탈리아어 단어에서 à 및 è 등) 반환 된 json UTF8 인코딩 된 HTML을 디코딩하는 것이 좋습니다. 이것은 HTML 페이지에서 (예 : AJAX 호출의 결과로) 사용해야하는 경우 특히 유용합니다. 자바 스크립트을 통해 디코딩하기 위해 사용

decodeURIComponent(escape(html)); 

html 반환 된 인코딩 된 HTML 코드입니다.

감사합니다.

관련 문제