在新页面上加载 ajax 成功数据

Posted

技术标签:

【中文标题】在新页面上加载 ajax 成功数据【英文标题】:Load ajax success data on new page 【发布时间】:2015-09-10 03:14:06 【问题描述】:

我的 ajax 调用命中控制器并在成功时获取完整的 JSP 页面。我试图在新页面上独立加载该数据,而不是在现有页面的某些元素中。我尝试为 html 标签加载它,但这也不起作用。我尝试跳过成功功能,但它仍然在同一页面上,没有成功数据。我的 ajax 调用是在单击表单中的普通按钮时进行的,代码如下所示。

$.ajax(

    url : '/newpage',
    type : 'POST',
    data : requestString,
    dataType : "text",
    processData : false,
    contentType : false,
    success : function(completeHtmlPage) 
        alert("Success");
        $("#html").load(completeHtmlPage);
    ,
    error : function() 
        alert("error in loading");
    

);

【问题讨论】:

为什么不使用window.location.href = '/newpage'; 重定向到页面? 两个问题:1.你看到alert("Success")了吗? 2.能否请您添加您的html代码,特别是#html部分? 你听说过 LINKS 吗? 这不是你使用.load()的方式,请再次阅读jQuery API文档 成功时重定向页面 【参考方案1】:

应该这样做:

$.ajax(

url : '/newpage',
type : 'POST',
data : requestString,
dataType : "text",
processData : false,
contentType : false,
success : function(completeHtmlPage) 
    alert("Success");
    $("html").empty();
    $("html").append(completeHtmlPage);

,
error : function() 
    alert("error in loading");


);

【讨论】:

谢谢。选项 1 非常适合我。虽然我像这样使用它 $("html").empty(); $("html").append(completeHtmlPage)。选项 2 似乎是一个不正确的解决方案,因为它将我的 HtmlContent 加载到 Url 中导致找不到页面错误。 这意味着 completeHtmlPage 不是 URL,而是内容..如果您发现我的答案正确,请接受它作为答案..:) 是的,你是对的,我在我的问题中也提到过,completeHtmlPage 是 HTML 内容。感谢您的回答。能否请您删除选项 2,以便我可以接受这个作为答案?【参考方案2】:

你可以试试这个,

my_window = window.open("");
my_window.document.write(completeHtmlPage);

走向成功。

【讨论】:

以上是关于在新页面上加载 ajax 成功数据的主要内容,如果未能解决你的问题,请参考以下文章

ajax成功后重新加载页面

为啥我的 ajax 部分视图呈现在新页面上?

当数据在javascript codeigniter php中使用ajax成功功能时,如何禁用页面重新加载?

ajax获取的数据,怎么存储在页面

在新页面上加载列表的正确详细信息

如何在 DJango 中停止页面重新加载 ajax jquery