我正在尝试使用CORS进行PATCH / POST。下面的代码适用于jQuery 1.9.1,但不适用于1.8.3。
var settingsB = {
"async": false,
"crossDomain": true,
"url": "https://wmmr85ap13.execute-api.us-west-2.amazonaws.com/dev/customer/" + m,
"method": "PATCH",
"headers": {
"content-type": "application/json"
},
"data": JSON.stringify({isFirstLogin: "false"})
}
$.ajax(settingsB).done(function (response) {
console.log(response);
});
在jquery 1.8.1上我得到了:
XMLHttpRequest无法加载 https://wmmr85ap13.execute-api.us-west-2.amazonaws.com/dev/customer/jvthales@gmail.com {%27isFirstLogin%27:%20false%20}。 对预检请求的响应未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。来源'http://emporiodacerveja.vtexcommercestable.com.br' 因此不允许访问。响应具有HTTP状态代码 400。
我认为CORS在服务器上配置得很好,因为jQuery 1.9.1可以工作!
使用1.9.1 vs 1.8.3版本进行post / patch有什么差异吗?
EDITED: 请参阅下面1.9.1与1.8.3通话之间的区别:
答案 0 :(得分:1)
需要设置类型和xhrFields
$.ajax({
type : "PATCH", //replaced my method in 1.9
url: cross_domain_url,
xhrFields: {
withCredentials: true
}
});
答案 1 :(得分:0)
jQuery 1.9.0中添加了method
参数。
方法
(默认:'GET')
类型:String要用于的HTTP方法 请求(例如“POST”,“GET”,“PUT”)。 (版本添加:1.9.0)