Javascript jQuery-Ajax未启动
以下ajax的工作原理与Chrome中的广告完全相同。HTTP PUT用于触发将对象插入RESTful APIJavascript jQuery-Ajax未启动,javascript,jquery,ajax,spring,rest,Javascript,Jquery,Ajax,Spring,Rest,以下ajax的工作原理与Chrome中的广告完全相同。HTTP PUT用于触发将对象插入RESTful API $.ajax({ type: "PUT", url: "/ajax/rest/team/create/", dataType: "json", processData: false, data: JSON.stringify(teamObject),
$.ajax({
type: "PUT",
url: "/ajax/rest/team/create/",
dataType: "json",
processData: false,
data: JSON.stringify(teamObject),
success: function (response) {
teamObject = response.object;
}
});
我注意到jQueryAPI文档很有帮助地告诉我,PUT和DELETE可以工作,但并非在所有浏览器中都能保证。这就是我的问题
对于这样的问题,如何在客户端实现RESTful API
编辑:Firebug告诉我FF确实发出了PUT,但由于一些目前未知的原因,它在到达服务器之前就已经死亡了。重复一次,这在Chrome中运行良好
编辑:Fiddler根本看不到FF尝试:(我做了以下工作
var payload = JSON.stringify(teamObject)
syncHTTP('/ajax/rest/team/create/', 'PUT', payload);
function syncHTTP(url,method,payload) {
var client = new XMLHttpRequest();
client.open(method, url, false);
client.setRequestHeader("Content-Type", "text/plain");
client.send(payload);
}
我宁愿使用jQuery,也不愿使用我自己的方法。|如果有人想出了答案,只需添加一个答案,如果它有效,我会接受它
谢谢
$.ajax({
type: "PUT",
url: "/ajax/rest/team/create/",
dataType: "json",
contentType: "application/json",
processData: false,
data: JSON.stringify(teamObject),
success: function (response) {
teamObject = response.object;
}
});
您需要添加contentType。当contentType设置为application/json jquery时,不要尝试从json字符串创建json对象,而是将其按原样-按字符串发送。有许多后端支持的标题(或者您可以扩展框架以支持它):
X-HTTP-Method-Override
。基本上,它允许您进行例如POST
调用,但使其显示为PUT
、DELETE
等。您能解释一下为什么您的更改可能会有所帮助吗?@krun下次发布一些说明,而不是只是在此处粘贴代码。对不起,我没有解释的情况是这样的。