3

我的链接如下所示:

 http://localhost:8081/wordpress/?p=535

如何使用 JavaScript 重定向到此页面?我不熟悉?语法,但我觉得我应该能够发送带有帖子 ID 的某种请求?

就像是:

redirect("p="+postid);

只是打电话window.Location对我不起作用,因为如果帖子不存在,那么我希望能够做其他事情。另外,我不希望它直接指向本地主机。它需要指向网站的根目录...

那么更像这样:

if (request("p="+postid) exists) {
    redirect("p="+postid);
}
4

5 回答 5

9
document.location.href = "http://localhost:8081/wordpress/?p=535";

如果你想先检查页面是否存在,你可以这样做:

var addr = "/wordpress/?p=535"; // here with a relative url
$.ajax({
    type: 'HEAD',
    url: addr,
    success: function() {
        document.location.href = addr;
    }
});

这将发出 HEAD 请求(因此没有内容下载)以检查页面是否存在,并且只有在正常时才更改当前位置。

请注意,如果您愿意,您可以在没有 jQuery 的情况下执行此操作,如果需要,我让您确定确切的语法。

但这只有在两个页面都来自同一个域时才有效。

于 2012-08-31T14:51:57.657 回答
2
window.location.href = "http://localhost:8081/wordpress/?p=535";
于 2012-08-31T14:52:16.027 回答
1
window.location = "http://localhost:8081/wordpress/?p=535";

更新:-在评论之后
虽然这不是应该使用的技巧,但可以
尝试向 url 发送一个 ajax 请求,如果它成功返回一些内容重定向,如果有404错误,则执行其他操作。

于 2012-08-31T14:51:42.173 回答
0

您可以像这样将可变的帖子 ID 添加到该位置:

var postID = 535;
window.location = "http://localhost:8081/wordpress/?p="+postID;

现在您已经更新了您的问题,我认为这显然不是 JavaScript 的工作。如果你想检查一个页面是否存在,你应该在服务器端进行检查,因为只有服务器端代码才能访问你的数据库,在那里它可以检查特定的帖子 ID 是否实际存在。

当然,您可以编写一些 AJAX 接口,其中 JavaScript 关闭并查询服务器端代码以查看帖子是否存在,然后您将得到您的答案并采取相应的行动——但这似乎真的这个问题过于复杂。

于 2012-08-31T14:53:21.127 回答
0

要将用户发送到另一个 URL,请使用

window.location.href = 'http://localhost:8081/wordpress/?p=535'

“?”之后的内容 是 URL 的一部分,旨在由服务器端程序处理。

于 2012-08-31T14:54:35.527 回答