2013-05-21 4 views
1

모든 페이지가 Ajax로 게시됩니다. 예상대로 다가오는 경우 ID를 얻을 수있는 페이지 또는 임의의 html 페이지와 http 400을 응답으로받을 수있는 경우 뭔가 잘못 됐어. 오류 상황에서 새 창에서 전체 HTML 페이지를 열고 싶습니다. 다음을 시도했지만 작동하지 않습니다 - 변수 데이터를 의도 된 HTML 페이지 대신 [object Object]로 설정합니다.javascript로 전체 HTML 페이지 가져 오기

$.ajax({ 
    type: "POST", 
    url: postUrl, 
    data:'message=' + message + '&' + 'title=' + title, 
    statusCode: { 
      400:function(data) { 
       var newWin = open('','windowName','height=300,width=300'); 
       newWin.document.write(data); 
     }, 
    }, 
    success: function(json) { 
     alert("Post success"); 
    }, 
    error: function(jqXHR, textStatus, errorThrown) { 
        alert("Error connecting to page."); 
    } 
}); 
+1

나는 JQuery와 다른 상태 코드 콜백을 설정할 수 있다는 것을 알지 못했다고 생각합니다. 그것은 매우 유용합니다! – Katana314

+0

질문이 명확하지 않습니다. 오류 포스트 백의 다른 페이지로 리디렉션하여 HTML을 전달 하시겠습니까? 그렇다면 ... 왜? 정적 페이지를 작성하고 호출하면됩니다. 나는 당신이 정확히 무엇을 성취하고자하는지 이해하지 못하고 코드가 당신이 생각하는 것을 시도하는 것처럼 보이지 않습니다. –

답변

3

dataType : 'html'을 지정하고 성공 함수 변수를 변경하십시오. 예 :

$.ajax({ 
    type: "POST", 
    dataType: 'html', 
    url: postUrl, 
    data:'message=' + message + '&' + 'title=' + title, 
    statusCode: { 
      400:function(data) { 
       var newWin = open('','windowName','height=300,width=300'); 
       newWin.document.write(data); 
     }, 
    }, 
    success: function(html) { 
     alert("Post success"); 
     $("#myDiv").html(html); 
    }, 
    error: function(jqXHR, textStatus, errorThrown) { 
     alert("Error connecting to page."); 
    } 
}); 
+0

해답을 가져 주셔서 감사합니다. 그러나 저에게 정말로 도움이되지는 않습니다 ... 새 창에 html 페이지를 포함 시키길 원합니다. http 400 응답을받을 때 열리는 창입니다. – Niko

+0

새 브라우저 창 에서처럼 새 창을 열려면 window.open()을 사용하십시오. –

+0

@ AndréHegge JS 경고에서 HTML은 구문 분석되지 않으며' ...'. jQuery UI의 대화 상자와 같은 대화 상자를 사용할 수 있습니다. http://jqueryui.com/dialog/ – Mooseman

관련 문제