【问题标题】:timestamp get appended in href causing link to fail [duplicate]时间戳附加在href中导致链接失败[重复]
【发布时间】:2014-10-04 05:16:14
【问题描述】:

我正在捕获以 base64 字符串格式写入的用户签名,并允许他们在 fancybox 弹出窗口中查看他们刚刚输入的数据。我这样做的方式是使用链接()并将href设置为该数据:

<a href="data:image/png;base64,iVBORw0KGgoAAAA...lFTkSuQmCC" class="fancy">click_me</a>

然而,点击这个链接会触发“ERR_INVALID_URL”,在喝了很多咖啡后我意识到这是由于目标 href 数据有这个似乎附加的 GET 参数,其值等于纪元时间

...lFTkSuQmCC?_=1412399504179

我想知道如何摆脱那些自动附加数据。我已经尝试过将 $.ajaxSetup({ cache: false }) jsut 放在 document.ready 之后,因为我认为它与某些缓存功能有关

【问题讨论】:

  • 给我一分钟,我会尽力为你准备的
  • 好吧,这很奇怪,当我在 jsfiddle 中执行此操作时,问题似乎消失了:jsfiddle.net/uZCC6/4570 可能是我的 js 库有问题
  • 你在jsfiddle中的图片不包含附加参数?_=1412399504179 ...如果你添加它,图片会失败。

标签: jquery fancybox


【解决方案1】:

您提供的JSFIDDLE 没有失败,因为它不包括您问题中的附加参数?_=1412399504179

如果你添加它,那么它会失败。见updated JSFIDDLE

如果你想摆脱尾随参数,你可以这样做

$(".fancy").fancybox({
    beforeLoad: function () {
        var _href = this.href.split("?");
        this.href = _href[0];
    }
});

见分叉JSFIDDLE

【讨论】:

  • 你是对的@JFK,但我的兴趣实际上是想知道当我的 html 仅包含纯 base64 数据时,谁首先附加了该字符串。我赌的是fancybox库,我猜的动机是避免浏览器缓存。我仍在寻找摆脱那个时间戳的方法
【解决方案2】:

我真的不确定是什么原因造成的,但是经过多次试验和错误后,我发现如果我专门将 fancybox 类型设置为“图像”,我的问题就消失了

$(".fancy-img").fancybox({
    type: 'image'
});

至于为什么我的 jsfiddle 似乎没有同样的问题,我只是一无所知。无论如何,谢谢那些回答的人

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-06
    • 2019-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 2010-09-13
    相关资源
    最近更新 更多