在href点击发送ajax帖子

时间:2012-11-21 10:17:14

标签: javascript jquery joomla2.5

当我点击链接时,我需要通过post发送ajax。问题是由于打开了链接而导致请求被删除。

jQuery('#pagination a').click(function(){
    jQuery.post('index.php?option=com_component',
        {checked_sites_for_session: jQuery('.selected-site input[type="checkbox"]').map(function () {return this.value;}).get()}
    ).success(function(){window.location = jQuery(this).attr('href')});
    console.log(jQuery(this).attr('href'));
    return false;
});

但问题再一次(感谢joomla)在url中 - 就像/~user/joomla/index.php/view-sites?view=sites&page=2 - 你看到它从斜线开始,但真正的链接是http://localhost/~user/joomla/index.php/view-sites?view=sites&page=2,但在源头我有{ {1}} '$ option.'page =' $左'。“// ....`

所以我需要一些“多用途域解析解决方案”或者只是停止joomla更改我的URL。

2 个答案:

答案 0 :(得分:2)

使用本机element.href将获得包括域的整个href,而不仅仅是属性值,还有在$,post函数中使用的this关键字的范围问题:

$('#pagination a').on('click', function(e){
    e.preventDefault();
    var self = this;
    $.post('index.php?option=com_component',
        {checked_sites_for_session: $('.selected-site input[type="checkbox"]').map(function () {
                 return this.value;
            }).get();
        }
    ).success(function(){
        window.location = self.href;
    });
});

根据您发布的链接,它们看起来根本不相同,因此您可能需要为此解决问题,因为某些CMS解决方案会使用重写等。

答案 1 :(得分:-1)

这个问题

    jQuery('#pagination a').click(function(e){
    e.preventDefault();
var me=this;
        jQuery.post('index.php?option=com_component',
            {checked_sites_for_session: jQuery('.selected-site input[type="checkbox"]').map(function () {return this.value;}).get()}
        ).success(function(){window.location = jQuery(this).attr('href')});
        console.log(jQuery(me).attr('href'));
        return false;
    });