为有点模糊的标题道歉,希望这些重现步骤能告诉你我遇到的问题:
- 在谷歌浏览器中,访问griffinalters.com(在最新版本的 Firefox 或 IE 中似乎不存在该问题);
- 点击任意一张卡片;
- 访问另一个站点(about:blank 对此非常有效);
- 回击,您应该只看到为部分请求加载的 HTML(恰好看起来像http://www.griffinalters.com/card/29/?ajax)。
我 pushState 的链接是/card/29/
,但我加载到我的 div 中的链接是/card/29/?ajax
(根据这个答案中的建议)。最初我试图检查 in 的存在XMLHTTPRequest
(HTTP_X_REQUESTED_WITH
对于它的价值,我正在使用 Django 的is_ajax
方法)。
我加载了我的 XHR 返回的 HTML 块:
function update_main_card_from_url(theurl) {
$(".primary-card").load(theurl + '?ajax');
}
依次调用:
function micro_card_click(event) {
event.preventDefault();
var theurl = $(this).attr("href");
SimpleHistory.pushState(theurl);
update_main_card_from_url(theurl);
}
我真正想了解的是为什么从不同的站点回击不会加载我推送的 URL,而是加载获取的 URL。谁能指出我正确的方向?