两个相同的AJAX调用-一个有效,另一个无效

时间:2018-11-11 作者:Tahi Reu

我正在开发一个WP插件。我有两个相同的AJAX调用,一个正在工作,第二个是给我400个错误的管理AJAX请求错误。php。

ReadyState为4,responseText为:“↵↵↵↵↵↵↵↵↵↵↵↵↵↵↵0”,statusText为“错误请求”,错误为POST http://localhost/wc_addtocart_as_admin/wp-admin/admin-ajax.php 400 (Bad Request)

两个调用都从两个独立的<form> 元素。当我改变时data 在使用AJAX使用js代码中定义的数组时,如下面的示例所示,它会给我带来与第二个AJAX调用相同的错误,而第二个AJAX调用根本不起作用。

    var test = [];
            test[0] = {name: "reason", value: \'OLALA\'};
            test[1] = {name: "second", value: \'TRUS\'};

    jQuery.ajax({
                url: test_ajax_object.ajax_url,
                type: \'POST\',
                data: test

                etc...

                })
因此,只有first AJAX可以与first一起使用<form> 数据第二个是完全相同的,不一样。

这种奇怪行为的可能原因是什么?如果我需要提供更多信息,请告诉我。

Headers difference

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

但他们不一样。查看每个表单上的表单数据。第二个不起作用的_test 附加到参数名称和操作值。

您收到400错误的原因是您没有发送有效的action. 这个action 参数是WordPress决定使用哪个回调来处理请求的方式。如果你不发送action 如果值有效,则不存在用于处理请求的回调,并且返回400错误。

您需要确保调用了该参数action, 不action_test, 该值是您在PHP中使用的专有名称。在你的情况下return_reason, 不return_reason_test.

结束

相关推荐

前端AJAX用户登录会话问题

我遇到了一个问题,ajax登录表单允许我登录。如果我在登录后将重定向设置为主页,它会将我发送到主页,并在顶部为我提供管理栏。但是,如果我尝试转到管理仪表板,它会要求我使用正常的wordpress登录再次登录。如何解决这个问题?我的代码:在页面登录中。php模板:<form id=\"login\" class=\"ajax-auth\" action=\"login\" method=\"post\"> <p class=\"status\"></p>