我正在开发一个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>
数据第二个是完全相同的,不一样。
这种奇怪行为的可能原因是什么?如果我需要提供更多信息,请告诉我。
最合适的回答,由SO网友:Jacob Peattie 整理而成
但他们不一样。查看每个表单上的表单数据。第二个不起作用的_test
附加到参数名称和操作值。
您收到400错误的原因是您没有发送有效的action
. 这个action
参数是WordPress决定使用哪个回调来处理请求的方式。如果你不发送action
如果值有效,则不存在用于处理请求的回调,并且返回400错误。
您需要确保调用了该参数action
, 不action_test
, 该值是您在PHP中使用的专有名称。在你的情况下return_reason
, 不return_reason_test
.