Form sends _noRedirect=1 even when not using AJAX

Lior.

Well-known member
For some reason, even when sending the form through a regular page and not an overlay, _noRedirect is true, while it shouldn't be.

I actually noticed this happens when sending a report too.

Is there anything I can do to have _noRedirect turned off when not sending using AJAX?

It's just that I'd like to have a JSON response for AJAX requests, and a redirect for regular requests, and this makes it impossible, as the controller can't tell what type of the request is.
 
In the form element use the data-redirect="on" attribute. That should set noRedirect to false.
 
Can you post the code you're using? Maybe there's something else.
No problem, though there's really not much to it:

HTML:
<xen:title>{xen:phrase user_reputation_give_reputation}</xen:title>
<xen:h1>{xen:phrase user_reputation_give_reputation}</xen:h1>

<xen:navigation>
    <xen:breadcrumb source="$nodeBreadCrumbs" />
    <xen:breadcrumb href="{xen:link full:posts, $post}">{xen:helper threadPrefix, $thread}{$thread.title}</xen:breadcrumb>
</xen:navigation>
<xen:container var="$bodyClasses">{xen:helper nodeClasses, $nodeBreadCrumbs, $forum}</xen:container>
<xen:container var="$searchBar.thread"><xen:include template="search_bar_thread_only" /></xen:container>
<xen:container var="$searchBar.forum"><xen:include template="search_bar_forum_only" /></xen:container>
<form action="{xen:link 'posts/give-reputation', $post}" method="post" class="xenForm formOverlay AutoValidator GiveReputation" data-redirect="on">
    <dl class="ctrlUnit">
        <dt><label>{xen:phrase user_reputation_type}:</label></dt>
        <dd>
            <ul>
                <li><label for="ctrl_positive"><input type="radio" name="type" id="ctrl_positive" value="1" checked="checked" /> {xen:phrase user_reputation_positive}</label></li>
                <li><label for="ctrl_negative"><input type="radio" name="type" id="ctrl_negative" value="-1" /> {xen:phrase user_reputation_negative}</label></li>
            </ul>
        </dd>
        <dt><label for="ctrl_comment">{xen:phrase user_reputation_reputation_comment}:</label></dt>
        <dd><textarea name="comment" id="ctrl_comment" rows="2" class="textCtrl Elastic"></textarea></dd>
    </dl>
    <dl class="ctrlUnit submitUnit">
        <dt></dt>
        <dd><input type="submit" value="{xen:phrase user_reputation_give_reputation}" accesskey="s" class="button primary" /></dd>
    </dl>
    <input type="hidden" name="_xfToken" value="{$visitor.csrf_token_page}" />
    <input type="hidden" name="postId" value="{$post.post_id}" />
</form>

Problem is that even when sending the from regularly, not through an overlay, _noRedirect is set to true.

By the way, from what I can see, _noRedirect is set to true everywhere throughout XenForo,
and for some reason there are places where it doesn't do a redirect when not using an overlay (like when reporting content), but in some place it does (like when replying).
 
Last edited:
Top Bottom