我在这里看到了几个问题,例如如何调试RESTful服务,其中提到:
不幸的是,相同的浏览器不允许我测试HTTP PUT,DELETE,甚至在某种程度上测试HTTP POST.
我也听说过浏览器只支持GET和POST,来自其他一些来源:
但是,Firefox中的一些快速测试显示发送PUT和DELETE请求按预期工作 - XMLHttpRequest成功完成,并且请求以正确的方法显示在服务器日志中.我是否缺少某些方面,例如跨浏览器兼容性或非明显的限制?
以下是我对DELETE请求的Ajax 请求:
deleteRequest: function (url, Id, bolDeleteReq, callback, errorCallback) {
$.ajax({
url: urlCall,
type: 'DELETE',
headers: {"Id": Id, "bolDeleteReq" : bolDeleteReq},
success: callback || $.noop,
error: errorCallback || $.noop
});
}
Run Code Online (Sandbox Code Playgroud)
有没有其他方法来传递数据而不是headers?
jQuery.ajax()的jQuery文档说明如下:
注意:此处也可以使用其他HTTP请求方法,例如PUT和DELETE,但并非所有浏览器都支持它们.
jQuery本身表示它支持IE 6.0 +,FF 2 +,Safari 3.0 +,Opera 9.0+和Chrome.那么上面哪个(如果有的话)不支持HTTP DELETE?
我正在尝试开发RESTful Sinatra应用程序.现在,我知道如何用类似的方式响应删除请求
delete '/user/:id' do |id|
#do something in the model
end
Run Code Online (Sandbox Code Playgroud)
我感兴趣的是如何执行该方法.我不能拥有DELETE而不是GET的链接,是吗?
到目前为止我找到的唯一解决方案是通过jQuery发送DELETE请求:如何在jQuery中发送PUT/DELETE请求?
我尝试在github上查看不同的RESTful Sinatra项目,但我的Ruby知识可能仅限于了解它们是如何做到的.
好吧我有一个简单的node.js/express.js/mongodb应用程序在这里设置我的配置如下.
var express = require('express'),
mongoose = require('mongoose');
http = require('http');
var app = express();
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
//middleware stack
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(__dirname + "/public"));
});
mongoose.connect("mongodb://localhost/hello");
Run Code Online (Sandbox Code Playgroud)
问题出在我尝试发出PUT或DELETE请求时.我的形式很简单
<form method="POST" action="/users/#{user.name}">
<input type="hidden" name="_method" value="PUT"/>
</form>
Run Code Online (Sandbox Code Playgroud)
现在我的路由器使用express .put()方法捕获路由
app.put('/users/:name', function(req, res) {
var b = req.body;
Users.update(
{ name: req.user.name },
{ name: b.name, age: b.age, email: b.email },
function(err) {
res.redirect('/users/'+b.name);
});
})
Run Code Online (Sandbox Code Playgroud)
当我发出请求时,我只是得到一个"无法PUT"或"无法删除"错误.
我试图通过chomes RESTful客户端以相同的结果发出同样的请求.
我已经阅读了一个与我有同样问题的话题,尽管在评论之后答案并没有解决我的问题.
问题我已经研究了 表达式删除和没有方法覆盖的表达式 …
使用Google云端存储,我想向客户端提供必要的信息以进行可恢复的上传.这可能吗?
我使用laravel控制器创建了一个宁静的API 。我有一个PhotosController具有destroy($id)删除资源的方法。我也有一段JavaScript代码向DELETE我的应用发送请求。结果应该是删除带有$idID 的照片。但是laravel不会将我的请求路由到destroy方法。而是发送401未经授权错误。
问题是我想通过发送DELETE请求到我的应用程序Ajax,但是laravel不允许我的请求被路由!
route.php文件:
Route::resource('photos', 'PhotosController');
Run Code Online (Sandbox Code Playgroud)
销毁方法:
public function destroy($id)
{
try{
unlink($_SERVER["DOCUMENT_ROOT"].'/uploads/doctors/' . $id);
Session::forget('photo');
$msg = Notification::where('flag', 's')->where('code', 'user-update-delete-photo-gallery')->first()->msg;
return Response::json(array('success' => $msg));
}catch (Exception $e){
App::abort(500, $e->getMessage());
}
}
Run Code Online (Sandbox Code Playgroud)
我的Ajax请求:
$.ajax(
{
url: "/photos/" + name,
method : "DELETE", // Or POST : result is the same
data :{
_token : $("input[name=_token]").val(),
_method : …Run Code Online (Sandbox Code Playgroud) 在Backbone中,有一个"DELETE".
this.model.url = '/js/products/123/destroy';
this.model.destroy();
Run Code Online (Sandbox Code Playgroud)
我怎样才能在JQuery中模拟这个?
在我的node.js应用程序中,我专门寻找app.delete.
. Request URL:http://mydomain.com/js/products/2/destroy
. Request Method:DELETE
. Status Code:?200 OK
. Request Headersview source
. Accept:application/json, text/javascript, */*; q=0.01
. Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
. Accept-Encoding:gzip,deflate,sdch
. Accept-Language:en-US,en;q=0.8
. Connection:keep-alive
. Cookie:connect.sid=s%3ALmcKt2dNgSzfQCyCAcVlPeg6.bFXUPlpuZctDpfN2Gu5mtslVC9nA3FOi908Qe8aExYY
. Host:mydomain.com
. Origin:http://mydomain.com
. Referer:http://mydomain.com/1
. User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31 AlexaToolbar/alxg-3.1
. X-Requested-With:XMLHttpRequest
. Response Headersview source
. Connection:keep-alive
. Content-Length:27
. Content-Type:text/html; charset=utf-8
. Date:Sun, 14 Apr 2013 02:57:17 GMT
. X-Powered-By:Express
Run Code Online (Sandbox Code Playgroud) ajax ×4
jquery ×4
rest ×3
javascript ×2
backbone.js ×1
browser ×1
express ×1
http ×1
http-delete ×1
httprequest ×1
laravel ×1
mongodb ×1
mongoose ×1
node.js ×1
php ×1
ruby ×1
sinatra ×1
upload ×1