尽管处理了正确的请求,但仍有400个错误的请求 [英] 400 bad request despite correct request handling

查看:106
本文介绍了尽管处理了正确的请求,但仍有400个错误的请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法使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.

然后:

  1. 清除您的cookie;无效/过期的会话Cookie有时会导致400错误.

  1. 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆