我在这里看到了几个问题,例如如何调试RESTful服务,其中提到:
不幸的是,相同的浏览器不允许我测试HTTP PUT,DELETE,甚至在某种程度上测试HTTP POST.
我也听说过浏览器只支持GET和POST,来自其他一些来源:
但是,Firefox中的一些快速测试显示发送PUT和DELETE请求按预期工作 - XMLHttpRequest成功完成,并且请求以正确的方法显示在服务器日志中.我是否缺少某些方面,例如跨浏览器兼容性或非明显的限制?
所以我之前已成功获得ajax请求,但我总是不得不使用表单,然后在提交结束时返回false,以便它不刷新页面.
我最近刚刚将我的javascript移动到一个单独的文件中,这导致我的@命令失败.因此,我不知道如何将我的网址设置为我的路线?
HTML:
<button id="saveAsDefaultButton">Save as default</button>
Run Code Online (Sandbox Code Playgroud)
Playframework java代码:
public static Result saveDefaultPhoneForUser(String handset) {
User currentUser = User.findByName(session("name"));
currentUser.lastControlledHandset = theHandset;
currentUser.save();
return ok();
}
Run Code Online (Sandbox Code Playgroud)
路线:
POST / controllers.Application.saveDefaultPhoneForUser(handset : String)
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
$('#saveAsDefaultButton').click(function(evt) {
$('#errors').hide();
$.ajax({
type : 'POST',
url : "controllers.Application.saveDefaultPhoneForUser",
data : $('#controlledPhone option:selected').text(),
dataType : "text",
success : function(data) {
//setError('Call succedded');
//$('#test1').attr("src", data)
},
error : function(data) {
setError('Make call failed');
}
});
return false;
});
Run Code Online (Sandbox Code Playgroud)
我确定有办法做到这一点我只是没有运气找到任何东西.任何帮助都很大的帮助.
我想知道什么是明确的(?)答案是关于如何从浏览器中执行POST/GET以外的事情 - HTML表单或Ajax,因为我听到关于什么浏览器允许的混合报告(特别是在ajax端) ).
在RESTful风格中构建后端时,最好使用PUT,HEAD,OPTIONS等适当的动词......在rails中,使用一个名为method(IIRC?)的隐藏表单字段来模拟这个,并在后端使用调度到动词的适当控制器.现在(2009年底)这是必要的吗?有哪些惯例?