我在这里看到了几个问题,例如如何调试RESTful服务,其中提到:
不幸的是,相同的浏览器不允许我测试HTTP PUT,DELETE,甚至在某种程度上测试HTTP POST.
我也听说过浏览器只支持GET和POST,来自其他一些来源:
但是,Firefox中的一些快速测试显示发送PUT和DELETE请求按预期工作 - XMLHttpRequest成功完成,并且请求以正确的方法显示在服务器日志中.我是否缺少某些方面,例如跨浏览器兼容性或非明显的限制?
GET:$.get(..)
POST:$.post()..
怎么样PUT/DELETE?
我有一个页面,用户可以使用按钮编辑各种内容,并选择触发ajax调用.特别是,一个动作导致一个url被远程调用,有一些数据和一个'put'请求,(因为我正在使用一个宁静的rails后端)触发我的更新操作.我还有一个删除按钮,它调用相同的URL,但有一个'删除'请求.'update'ajax调用适用于所有浏览器,但'delete'调用在IE中不起作用.我有一种模糊的记忆,在遇到这样的事情之前......任何人都可以放弃任何光明吗?这是我的ajax电话:
//update action - works in all browsers
jQuery.ajax({
async:true,
data:data,
dataType:'script',
type:'put',
url:"/quizzes/"+quizId+"/quiz_questions/"+quizQuestionId,
success: function(msg){
initializeQuizQuestions();
setPublishButtonStatus();
}
});
//delete action - fails in ie
function deleteQuizQuestion(quizQuestionId, quizId){
//send ajax call to back end to change the difficulty of the quiz question
//back end will then refresh the relevant parts of the page (progress bars, flashes, quiz status)
jQuery.ajax({
async:true,
dataType:'script',
type:'delete',
url:"/quizzes/"+quizId+"/quiz_questions/"+quizQuestionId,
success: function(msg){
alert("success");
initializeQuizQuestions();
setSelectStatus(quizQuestionId, true);
jQuery("tr[id*='quiz_question_"+quizQuestionId+"']").removeClass('selected');
},
error: function(msg){
alert("error:" + msg);
}
});
} …Run Code Online (Sandbox Code Playgroud)