jQuery ajax调用是否支持PATCH?

当我发送此ajax rquest时:

$.ajax({

headers : {

'Accept' : 'application/json',

'Content-Type' : 'application/json'

},

url : 'http://localhost:8080/wutup/venues/12',

type : 'PATCH',

data : JSON.stringify({description: "842490812321309213801923 gonzagazors"}),

success : function(response, textStatus, jqXhr) {

console.log("Venue Successfully Patched!");

},

error : function(jqXHR, textStatus, errorThrown) {

// log the error to the console

console.log("The following error occured: " + textStatus, errorThrown);

},

complete : function() {

console.log("Venue Patch Ran");

}

});

我收到此错误:

XMLHttpRequest无法加载http://:// localhost:8080 / wutup / venues / 12。Access-

Control-Allow-Methods不允许使用方法PATCH。

但是,使用curl:

 $ curl -v -H "Accept: application/json" -H "Content-type: application/json" -X PATCH -    d' {"address": "8421 Gonzaga Ave"}'  http://localhost:8080/wutup/venues/12

About to connect() to localhost port 8080 (#0)

Trying 127.0.0.1... connected

Connected to localhost (127.0.0.1) port 8080 (#0)

PATCH /wutup/venues/12 HTTP/1.1

User-Agent: curl/7.21.1 (i686-pc-mingw32) libcurl/7.21.1 OpenSSL/0.9.8r zlib/1.2.3

Host: localhost:8080

Accept: application/json

Content-type: application/json

Content-Length: 57

HTTP/1.1 204 No Content

Server: Apache-Coyote/1.1

Access-Control-Allow-Origin: *

Date: Fri, 30 Nov 2012 08:14:35 GMT

Connection #0 to host localhost left intact

Closing connection #0

回答:

$.ajax方法 确实 支持HTTP PATCH。

您看到的问题是该ajax方法Access-Control-Allow-

Methods在选项预检检查的响应标头中查找PATCH

。您的响应中缺少此标头,或者此标头的值中未包含PATCH方法。无论哪种情况,问题都出在服务器上,而不是客户端代码中。

这是使用Java的示例:

response.addHeader("Access-Control-Allow-Methods", "GET, POST, PATCH, PUT, DELETE");

以上是 jQuery ajax调用是否支持PATCH? 的全部内容, 来源链接: utcz.com/qa/427695.html

回到顶部