22
4

9 回答 9

48

您有一些 javascript 代码阻止执行锚标记的默认操作。您可以检查NetworkFireBug 或 Chrome DevTools 中的选项卡,以查看单击链接时是否正在发出某些 AJAX 请求。您可以尝试排除 javascript 文件,直到找到正在执行此操作的文件。

于 2013-02-24T09:08:17.557 回答
8

也许您使用 JavaScript 阻止了标记的重定向事件。

例如:

$(document).on('click', 'a.thatTag', function (e) {
   // ...
   e.preventDefault();
});

.preventDefault()防止重定向。

于 2017-08-08T11:56:09.763 回答
7

Darren 正确给出,肯定是一些 javascript 代码正在发送 AJAX 请求(post 或 get),这会阻止链接按您预期的方式运行。

但是,如果您使用了外部资源,则可能很难更正min文件中的错误。

我建议使用 jquery onclick 事件内联来规避 AJAX 调用

<a href="http://foo.bar/" onclick="window.open('https://www.foo.bar/culrsteam')">Foo</a>

您还可以使用window.open('https://www.foo.bar/culrsteam', '_blank')like withtarget='_blank'

于 2016-12-02T14:50:56.323 回答
4

试试这个代码...

<a href="http://google.com/" onclick="location.replace('http://google.com/'),'_top'">Google</a>
于 2016-11-15T04:55:12.273 回答
2

如果地址在 href 属性中没有传输协议,则可能会发生这种情况。一个示例是将 localhost 链接为<a href="localhost"></div>而不是<a href="http://localhost"></div>. 如果这样做,您会看到谷歌浏览器会给出取消状态,并且在 Safari 中会出现一个对话框,询问应该在哪个应用程序中打开链接,因为传输协议是未知的。$_SERVER['HTTP_HOST']我在 PHP 中设置链接时遇到了这个问题。

关键是,请确保将传输协议留在链接前面,无论是、http://还是其他任何内容。https://ftp://

于 2017-02-04T07:10:43.040 回答
2

我已经e.preventDefault()设置了父元素。

于 2019-08-24T22:19:07.193 回答
0

我知道这是一个老问题,但是刚刚遇到了类似的问题,听起来问题可能是您的请求被浏览器阻止了。如果您当前处于尝试链接到不安全 (http) 资源的安全 (https) 环境中,则可能会发生这种情况。

目前尚不清楚您的 href 是什么,但如果您当前的环境是安全的,请确保 href 是 https(或 //)。

于 2018-04-18T09:40:50.643 回答
0

href在使用 JS 设置链接的属性后,我在 ReactJS 中遇到了这个问题。我使用useState挂钩解决了它应该是什么链接。

于 2020-08-20T19:11:07.280 回答
0

我有data-bs-dismiss="modal"哪个关闭我的模式但阻止重定向

于 2021-08-11T06:46:14.147 回答