【问题标题】:Can I access the href of my ajax request in the javascript of my request?我可以在请求的 javascript 中访问我的 ajax 请求的 href 吗?
【发布时间】:2009-05-23 02:08:40
【问题描述】:

这里是一个示例用例:

我通过 ajax 请求请求一个简单的表单。我想将结果提交到我请求的同一页面。有没有办法在结果请求的 javascript 中访问该请求的 URL?

下面是一些通过 javascript 和 PHP 完成我想要的代码。这样做的缺点是我必须将我的 javascript 包含在与 myajaxform.php 相同的文件中。我宁愿把它分开,这样我就可以缩小,缓存等等。

我不能使用 location.href,b/c 它指的是窗口的位置,而不是最新的请求。

frm.submit(function () {
    if (frm.validate()) {
        var data = frm.serialize();
        jQuery.ajax({
            url : '<?= $_SERVER['PHP_SELF'] ?>',
            type : 'POST',
            data : data,
                dataType: "html",
            success : function (data) {

            }
        });
    }
    return false;
});

如果没有办法直接通过 javascript 访问它,你将如何解决这个问题,以便 javascript 可以进入它自己的文件?我想我可以在原始 ajax 请求的成功处理程序中创建对 URL 的某种引用。想法?也许使用 jQuery 数据方法?

【问题讨论】:

    标签: php javascript jquery ajax


    【解决方案1】:

    您可以将要提交的url存储在表单的action属性中,然后将url设置为frm.action

    jQuery.ajax({
                 url : frm.action,
                 type : 'POST',
                 data : data,
                 dataType: "html",
                 success : function (data) {
                }
    });
    

    【讨论】:

    • 啊,是的......简单,明显的答案。只是
    【解决方案2】:

    如果我完全误解了您的问题,请原谅我,因为我觉得它有些令人困惑。怎么样

    frm.submit(function () {
        if (frm.validate()) {
            var data = frm.serialize();
        jQuery.ajax({
                url : window.location.href,
                type : 'POST',
                data : data,
                dataType: "html",
                success : function (data) {
    
                }
        });
        }
        return false;
    });
    

    【讨论】:

    • window.location.href 将引用窗口的位置,而不是 ajax 请求的 URL ...不过
    猜你喜欢
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-28
    相关资源
    最近更新 更多