2016-10-27 1 views
0

응답이있는 Jason에서 ajax 양식을 제출하고 있습니다. 모든 것은 잘 작동합니다. 사용자에게 특정 데이터를보기위한 URL 링크가 포함 된 html을 포함하는 사용자에게 응답을 보내야하는 경우는 예외입니다. 따라서 서버에서 콜백 응답이 실패하여 오류가 반환됩니다. 그러나 html 링크를 제거하면 모든 것이 정상적으로 작동합니다. 또한 브라우저 검사 요소에서 네트워크 정보를 확인하면 예상대로 링크가 포함 된 원하는 응답 메시지가 수신되지만 jquery는이를 표시하지 못하는 것 같습니다.서버에서 html 태그를 포함하는 콜백 응답이 아약스 jquery에 도착하지 못함

상태가 중요하거나 필요한 경우 코드 서명자 기반 응용 프로그램입니다. 다음은

콜백 응답 안의 HTML입니다 :

<a href="www.myurl.com/index.php/student/parent-profile/b38d128b180b04afc">Click here to View Profile</a> 

내가 다시 서버에서 오는 다른 텍스트와 함께 위의 URL을 통과하는 방법에 대한 도움이 필요합니다. 나는 데이터를 인코딩하고 디코딩하는 방법이나이를 수행하는 다른 대체 방법을 알아야합니다.

다음은이 도움말보기에 정말 기쁠 내 JS

jQuery.ajax({ 
      url:  site_url+'/add-student-process', 
      type:  'POST', 
      data:  form_data, 
      dataType: 'json', 
      contentType: "application/x-www-form-urlencoded;charset=utf-8", 
      cache:  false 
      }) 
    .done(function(resp){    
     if(resp.type === "error"){ 
      jQuery("#ajax_form_resp").html(resp.value);         
     } 
     else if(resp.type === "okay"){ 
      jQuery("#ajax_form_resp").html(resp.value);           
     } 
    }) 
    .fail(function(){ 
     jQuery("#ajax_form_resp").html('Error encountered while processing request. Pls try again shortly.'); 
    }); 

일부 라인이다.

+0

응답 배열 '$ 응답 = 배열을 생성(); $ response [ 'url'] = xxx; $ 응답 [ 'text'] = yyy; echo json_encode ($ response);'그리고 json에서 구문 분석하여 태그를 만들 수 있습니다. – SPViradiya

+1

@SPViradiya 고맙습니다 .. 해결책을 찾았습니다. – John

답변

0

HTML에서 서버로받은 태그를 DOM으로 전달하는 것은 일반적으로 바람직하지 않습니다. 귀하의 원시 데이터 (URL 및 텍스트)를 배열에 배치하고 클라이언트로 전송하는 주석이 당신에게 더 유연하게 만듭니다. 자바 스크립트에서 링크 태그를 만들어야하지만 URL과 텍스트를 훨씬 쉽게 허용 목록에 추가 할 수도 있습니다.

문제로 돌아 가기 : jquery ajax 구성은 응답이 json (dataType)에 있어야합니다. 즉, 응답은 json 형식의 문자열이어야합니다. 원시 HTML을 다시 보내면 잘 처리되지 않습니다. 더러운 해킹은 원시 html을 json_encode에 보내서 클라이언트에게 보냅니다. 그렇다면 그것은 적어도 정확하게 벗어날 것입니다. 탈출이 당신 문제라고 생각합니다.

echo json_encode($raw_html); 
0

해결에 도움이되는 링크를 찾았습니다.

var text = '&lt;p&gt;name&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:xx-small;"&gt;ajde&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;da&lt;/em&gt;&lt;/p&gt;'; 
var decoded = $('<div/>').html(text).text(); 
alert(decoded); 

Javascript decoding html entities

관련 문제