使用wordpress,有页面模板,有一个调用代金券代码并动态设置动作的ajax调用,并提交表单以兑换代金券,
$.ajax({
type: 'POST',
url: ajaxurl,
data: action_data,
dataType: 'json',
success: function (response) {
$(".loading").hide();
btn.prop('disabled',false);
btn.removeAttr("disabled");
if(response.status==1){
$(".response").html(response.message);
$(".response").show().delay(2000).hide(0);
var redirectUrl = "<?php echo get_bloginfo('url'); ?>/"+response.redirect_link+"/";
alert(redirectUrl);
form.attr('action',redirectUrl);
}else{
$("#voucher_code").addClass("error-fld");
$(".response").html(response.message);
$(".response").show().delay(3000).hide(0);
//return true;
}
}
});
此外,我在我的htaccess中规定所有网址最后都应附加“/”,否则会将其重定向到引荐网址,
RewriteCond %{REQUEST_URI} !(/$|\.)
RewriteCond %{REQUEST_URI} !wp-json/contact-form-7/v1/contact-forms/1404/feedback
RewriteCond %{REQUEST_URI} !wp-json/contact-form-7/v1/contact-forms/1740/feedback
RewriteCond %{REQUEST_URI} !wp-json/contact-form-7/v1/contact-forms
RewriteRule ^(.*)$ https://example.com/$1/ [L,R=301]
问题如果我在标签中硬编码动作它工作正常,但通过设置jquery不提交。我也检查了ajax中的响应也警告重定向链接还有“/”也在最后,并在网络选项卡中,但它通过jquery重定向到动态网址,但在网络选项卡中显示302错误,抱歉我的英文不好,打开回答任何问题,任何想法的家伙?
答案 0 :(得分:0)
我可能会遗漏一些东西,但看起来你只是在改变&#34;动作&#34;表单上的属性,但您没有重新提交表单。尝试类似:
...
form.attr('action',redirectUrl);
form.submit();
...