xhr 方法是否区分大小写?

xhr method is case-sensitive?

我发现我可以使用大写或小写的get post put delete 方法,但我只能使用大写的patch 方法使其工作。

var xhr = new XMLHttpRequest();
xhr.open('PATCH',url); //works
xhr.open('patch',url); //get error net::ERR_EMPTY_RESPONSE
xhr.send();

HTTP 请求方法被定义为大写。 HTTP/1.1 RFC 的第 3.1.1 节说

The request method is case-sensitive.

由于XMLHttpRequest只是将给定的请求方法发送到服务器,上述限制也适用于此。

一些服务器可能接受小写请求方法作为 Robustness Principle 的应用,但出于同样的原因,您不应发送它们。