尽管处理了正确的请求,但仍有400个错误的请求 [英] 400 bad request despite correct request handling
问题描述
我无法使AJAX请求生效.从这个较早的线程看来,请求处理程序和注册处理程序的钩子不是问题:
I am having trouble getting an AJAX request to work. From this earlier thread it appears the request handler and hooks to register the handler are not the issue: Wordpress: Ajax request logs 400 Bad Request to console
该框架(wordpress)确实每分钟左右用心跳" k/v对发送ajax请求(到同一目标).我从下面的核心复制了我的错误请求和这些良好请求之一.突出的是我的文本/html的响应标头.这会导致错误的 REQUEST 吗?如果不是,可能是什么原因造成的?
The framework (wordpress) does send ajax requests (to the same target) with a "heartbeat" k/v pair every minute or so. I've copied my bad request and one of these good requests from the core below. What sticks out is the response header of text/html in my one. Could that cause a bad REQUEST ? If not what else might cause it?
// my bad request. Error code 400 "BAD REQUEST"
Request URL:http://localhost/wptest2/wp-admin/admin-ajax.php
Request method:POST
Remote address:127.0.0.1:80
Status code: 400
Version:HTTP/1.1
Response headers (177 B)
Raw headers
Connection close
Content-Length 165
Content-Type text/html; charset=UTF-8
Date Sun, 05 May 2019 04:58:48 GMT
Server Apache/2.4.29 (Ubuntu)
Request headers (1.030 KB)
Raw headers
Accept application/json, text/javascript, */*; q=0.01
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Connection keep-alive
Content-Length 30
Content-Type application/json
Cookie wordpress_69cb7e12fdbb27dfb560…2-1ebb-4ab4-ba67-14f7be9e4c98
Host localhost
Referer http://localhost/wptest2/wp-ad…-general.php?page=fvc-settings
User-Agent Mozilla/5.0 (X11; Ubuntu; Linu…) Gecko/20100101 Firefox/66.0
X-Requested-With XMLHttpRequest
// A working request done automatically every minute or two by wordpress core
Request URL:http://localhost/wptest2/wp-admin/admin-ajax.php
Request method:POST
Remote address:127.0.0.1:80
Status code: 200
Version:HTTP/1.1
Response headers (605 B)
Raw headers
Cache-Control no-cache, must-revalidate, max-age=0
Connection Keep-Alive
Content-Length 423
Content-Type application/json; charset=UTF-8
Date Sun, 05 May 2019 04:59:46 GMT
Expires Wed, 11 Jan 1984 05:00:00 GMT
Keep-Alive timeout=5, max=100
Referrer-Policy strict-origin-when-cross-origin
Server Apache/2.4.29 (Ubuntu)
X-Content-Type-Options nosniff
X-Frame-Options SAMEORIGIN
X-QM-overview-memory 7,444 kB
X-QM-overview-memory_usage 5.7% of 131,072 kB limit
X-QM-overview-time_taken 0.5868
X-QM-overview-time_usage 2.0% of 30s limit
X-Robots-Tag noindex
Request headers (1.062 KB)
Raw headers
Accept application/json, text/javascript, */*; q=0.01
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Connection keep-alive
Content-Length 99
Content-Type application/x-www-form-urlencoded; charset=UTF-8
Cookie wordpress_69cb7e12fdbb27dfb560…2-1ebb-4ab4-ba67-14f7be9e4c98
Host localhost
Referer http://localhost/wptest2/wp-ad…-general.php?page=fvc-settings
User-Agent Mozilla/5.0 (X11; Ubuntu; Linu…) Gecko/20100101 Firefox/66.0
X-Requested-With XMLHttpRequest
Ajax调用
当然我一次只能测试一个.
Ajax Calls
Of course I only test one at a time.
jQuery(document).ready(function() {
jQuery('#previousButton').click(function() {
jQuery.ajax({
type: "POST",
url: ajaxurl,
headers : {
'Content-Type' : 'application/json'
},
dataType: "json",
action: "selectTargetsWithOffset",
data: {
action: "selectTargetsWithOffset",
},
success: function() {
console.log(response, `=====response from $.ajax}=====`);
}
});
});
推荐答案
在第一次查看您的问题时,我认为您的问题可能是格式问题-您文件的很大一部分看上去已被注释掉".如果评论是故意的(不是SO帖子中的错误),建议您首先制作文件的备份副本,然后删除文件中不必要的部分.
On first looking at your question, I thought your issue may have been a formatting issue - a large chunk of your file looks 'commented out'. If the commenting is intentional [and not a mistake in the SO post], I suggest you start by making a backup copy of the file and then delete any unnecessary parts of the file.
然后:
-
清除您的cookie;无效/过期的会话Cookie有时会导致400错误.
Clear your cookies; invalid/expired session cookies can sometimes cause a 400 error.
检查您所访问的网址是否正常(没有拼写错误等).
check that the url you're accessing is ok (no misspellings etc.)
检查您提交的文件的大小是否足够小以被接受.太大的文件可能会被服务器拒绝,并显示400错误
Check the size of the file you're submitting is small enough to be accepted. files that are too large can be rejected by the server with a 400 error
一定要检查文件中的格式错误和特殊字符. (为什么;q=0.01
在Accept-Encoding之前?)
Definitely check over your file for formatting errors and special characters. (why the ;q=0.01
before the Accept-Encoding?)
希望这会有所帮助.
P.S.您可能会发现文章有用
P.S. You may find this article helpful
这篇关于尽管处理了正确的请求,但仍有400个错误的请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!