2013-05-21 28 views
1

我正在做一個Ajax張貼到一個特定的頁面,我可以得到一個ID作爲響應,如果一切如預期或我可以得到一個隨機的HTML頁面和http 400作爲響應if出了些問題。在錯誤情況下,我想在新窗口中打開整個html頁面。我嘗試了以下,但它不工作 - 它將變量數據設置爲[對象對象],而不是預期的HTML頁面。獲取整個HTML頁面作爲迴應與JavaScript

$.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éHeggeJS中的HTML警告'不會解析,並且看起來像'<!doctype html> ''''' ...'。你可能想使用一個對話框,比如jQuery UI中的對話框:http://jqueryui.com/dialog/ – Mooseman