如何从 JavaScript 中的 AJAX 调用获取 URL 变量?

发布于 2024-10-08 19:23:24 字数 1127 浏览 3 评论 0原文

我正在通过 AJAX 调用执行 Javascript 代码,如下所示:

function loadViewViaAjax(url) {
    Ext.Ajax.request({
        url: url,
        success: function(objServerResponse) {
            var responseText = objServerResponse.responseText;
            var scripts, scriptsFinder=/<script[^>]*>([\s\S]+)<\/script>/gi;
            while(scripts=scriptsFinder.exec(responseText)) {
                eval(scripts[1]);
            }
        }
    });
}

我在 URL 中发送参数,如下所示:

alt text

我得到PHP 和 Javascript 的值如下:

alert('the URL from PHP: [<?php echo $_SERVER["REQUEST_URI"]; ?>]');
alert('the URL from javascript: [' + window.location.href + ']');

虽然 PHP 为我提供了请求 URI,所以我可以访问 URL 变量(也通过 $_GET):

alt text

我无法通过读取 window.location.href 来使用 Javascript 获取 URL 变量,因为它是父页面的 URL,而不是 AJAX 调用:

alt text

如何使用 Javascript 从 AJAX 调用而不是从父页面获取 URL?

I am executing Javascript code from an AJAX call like this:

function loadViewViaAjax(url) {
    Ext.Ajax.request({
        url: url,
        success: function(objServerResponse) {
            var responseText = objServerResponse.responseText;
            var scripts, scriptsFinder=/<script[^>]*>([\s\S]+)<\/script>/gi;
            while(scripts=scriptsFinder.exec(responseText)) {
                eval(scripts[1]);
            }
        }
    });
}

And I send parameters in the URL like this:

alt text

I get the values like this with PHP and Javascript:

alert('the URL from PHP: [<?php echo $_SERVER["REQUEST_URI"]; ?>]');
alert('the URL from javascript: [' + window.location.href + ']');

While PHP gives me the request URI so I have access to the URL variables (also via $_GET):

alt text

I cannot get the URL variables with Javascript by reading the window.location.href since it is the URL of the parent page instead of the AJAX call:

alt text

How with Javascript can I get the URL from the AJAX call instead of from the parent page?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

魂牵梦绕锁你心扉 2024-10-15 19:23:24

事实证明,这个问题只是对范围的误解:我使用 eval 执行的 javascript 可以访问主脚本中的变量,因此不需要传递值。

This problem turned out to simply be a misunderstanding of scope: the javascript I am executing with eval has access to the variables in the main script so there is no need to pass values.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文