【问题标题】:How to get jQuery/AJAX final URL如何获取 jQuery/AJAX 最终 URL
【发布时间】:2010-06-22 21:41:55
【问题描述】:

当我在 jQuery 中运行 $.get.load 时,请求似乎完全遵循 302 重定向并给了我最终的响应,我可以在回调中使用 $.get 或插入 this .load 的元素。

虽然我显然拥有原始 URL,因为我可以控制在 $.get.load 中作为第一个参数输入的字符串(如果我可以直接在回调中获取它以简化事情,这也会很有帮助),如何在回调中访问最终(重定向后)URL?

我怀疑它会在 XMLHttpRequest 对象中,我有 found the specification

【问题讨论】:

标签: jquery ajax xmlhttprequest


【解决方案1】:
我不确定(谷歌搜索并没有让我到任何地方),但是这个非正统的解决方案呢? var hiddenIframe = $('').attr({ style: 'display: none;' }).appendTo('body'); hiddenIframe.attr({ src: 'http://www.direct-me.com' }); hiddenIframe.load(function() { 警报(hiddenIframe.attr('src')); }); 基本上它只是创建一个隐藏的 iframe,然后转到您的 URL,加载的回调 *应该* 告诉您最终的 URL。

看来你不能。你可以得到原来的src,但是由于安全问题你不能。

【讨论】:

  • 您有什么理由相信这是不可能的吗?毕竟,我知道您无论如何都可以获得响应标头(w3.org/TR/XMLHttpRequest/#the-getallresponseheaders-method),因此浏览器似乎不会阻止您访问该信息。此外,跨站点安全性会阻止您向 facebook.com/delete-my-profile 发出 AJAX 请求,但我不明白为什么会在这里涉及。
  • @Steven 我不相信,我希望有人能证明我不是这样。
  • 我正在使用 Rails,它使用 redirect_to 方法来停止脚本执行并传递位置标头。我重新定义了在 XHR 情况下发送包含 URL 或 URL 段的文本字符串的函数,或者如果设置了 xhr=1 隐藏变量(例如,因为 Form 插件实际上不使用 XHR 请求),并解析返回的内容客户端,如果解析为 URL,则重定向。从语义上讲,最好只自定义一个标头并将重定向 URL 发送到那里,但是这种当前的方法并没有产生复杂性,我认为具有更好的兼容性。
猜你喜欢
  • 2015-09-08
  • 1970-01-01
  • 1970-01-01
  • 2014-06-23
  • 2018-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多