【问题标题】:jQuery ajax request of page with redirect, redirects my entire page.带有重定向的页面的 jQuery ajax 请求,重定向我的整个页面。
【发布时间】:2014-02-26 21:13:22
【问题描述】:

我正在使用 jQuery $.get 方法检索 html 页面,然后将结果附加到 div。

我正在检索页面的页面重定向到另一个页面(3 秒后),但这会导致我的父页面重定向,而不是我想要的 #mentions

$.get("index.php", {
    act: "Search", 
    CODE: 01, 
    keywords: nickName, 
    exactname: 1, 
    joinname: 1, 
    cat_forum: "forum", 
    forums: "all", 
    searchsubs: 1, 
    search_in: "posts", 
    result_type: "posts", 
    prune: 30, 
    prune_type: "newer", 
    sort_key: "last_post", 
    sort_order: "desc" 
}, function(data) { 
    $("#mentions").append(data); 
}, "html"); 

【问题讨论】:

  • 只是一个猜测(因为没有足够的信息来实际帮助您)您仍在提交页面/表单。可能缺少return false;
  • 您是否将整个 html 页面附加到 div 中?将您的 JavaScript 代码添加到帖子中。
  • @rlemon 感谢您的快速回复。这是代码 $.get("index.php", {act: "Search", CODE: 01, keywords: nickName, exactname: 1, joinname: 1, cat_forum: "forum", forums: "all", searchsubs: 1、search_in: "posts", result_type: "posts", prune: 30, prune_type: "newer", sort_key: "last_post", sort_order: "desc"}, function(data) { $("#mentions").附加(数据);},“html”);一切正常,数据成功附加到 div,但是当#mentions div 中的数据(html doc)重定向到另一个页面(3 秒后)时,重定向的页面不会留在 div 内
  • @Slev7n 好的,我想我现在明白你的问题了。简单的答案是不要使用 div,它们不是 iframe。听起来您想在这里使用 iframe。如果您专注于使用 div,则重定向不能是重定向。您需要调用该 ajax 函数并再次替换 div 的内容。但就像我在开始时所说的那样,iframe 很可能是您正在寻找的。​​span>
  • @rlemon 我用 iframe 替换了 div,结果相同 :(

标签: javascript jquery html get


【解决方案1】:

一个可能的解决方案是只获取身体的内部:

$.get("index.php", {
    act: "Search",
    CODE: 01,
    keywords: nickName,
    exactname: 1,
    joinname: 1,
    cat_forum: "forum",
    forums: "all",
    searchsubs: 1,
    search_in: "posts",
    result_type: "posts",
    prune: 30,
    prune_type: "newer",
    sort_key: "last_post",
    sort_order: "desc"
}, function (data) {
    $("#mentions").append($(data).find("body").html());
}, "html");

注意:如果您在 index.php 中有特定的 javascript 和 css 需要运行它,这将不起作用,因为您需要一个 iframe。

【讨论】:

  • Consol 显示以下错误:Uncaught Error: Syntax error, unrecognized expression
  • 奇怪的是这里没有出现任何语法错误,只需更改 $("#mentions").append(data); with $("#mentions").append($(data).find("body").html());
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多