【问题标题】:Loopback jQuery AJAX Request环回 jQuery AJAX 请求
【发布时间】:2010-09-24 20:11:32
【问题描述】:

为 AJAX 调用构建环回 URL 的最佳方法是什么?假设我有一个页面在

http://www.mydomain.com/some/subdir/file.php

我想通过 AJAX 调用加载。在 Firefox 中,使用 jQuery 可以正常工作:

$.post('/some/subdir/file.php', ...);

Safari/WebKit 尝试将此解释为本地文件系统上的一个位置(因此它最终会转换为“file://some/subdir/file.php”)。这不仅没有指向任何有用的东西,而且还会导致安全错误。

有没有办法在不将域硬编码到 URL 中的情况下完成此操作?我想让它尽可能独立于域。

更新

我最终从 location.href 中解析出基本 url 并将其放入一个可访问的 jQuery 函数中,如下所示:

/**
 * Retrieves the current root URL.
 *
 * @return string the root URL
 */
$.fn.rootUrl = function() {
    var url = location.href;
    return url.substring(0, url.indexOf('/', 7));
};

【问题讨论】:

    标签: javascript jquery ajax


    【解决方案1】:

    哇,IMO 的 Safari/WebKit 太差了。

    您可以观察 document.href,计算斜杠,然后在 URL 的开头添加那么多“../”。

    【讨论】:

      【解决方案2】:

      您可以让服务器在提供页面时将其自己的 URL 作为 javascript 变量插入,然后将该变量用作 Ajax 调用的一部分。这样它就既安全又自动。

      【讨论】:

        【解决方案3】:

        或者,您可以按如下方式组合您的 URL:

        'http://'+document.domain

        【讨论】:

          猜你喜欢
          • 2011-06-30
          • 2012-08-17
          • 2012-04-22
          • 2013-08-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多