相关疑难解决方法(0)

大多数Web浏览器中是否提供PUT,DELETE,HEAD等方法?

我在这里看到了几个问题,例如如何调试RESTful服务,其中提到:

不幸的是,相同的浏览器不允许我测试HTTP PUT,DELETE,甚至在某种程度上测试HTTP POST.

我也听说过浏览器只支持GET和POST,来自其他一些来源:

但是,Firefox中的一些快速测试显示发送PUTDELETE请求按预期工作 - XMLHttpRequest成功完成,并且请求以正确的方法显示在服务器日志中.我是否缺少某些方面,例如跨浏览器兼容性或非明显的限制?

browser ajax http cross-browser

596
推荐指数
7
解决办法
23万
查看次数

Node.js - Express 4.x - 方法覆盖不处理PUT请求

我试图让服务器处理PUT请求.但无济于事.提交表单后,客户端始终收到"无法发送/"消息. 我正在使用Express 4.x.

请注意,如果我在路线中将"put"更改为"post",请求处理得很好......

如何让我的服务器处理'PUT'请求?

服务器:

var express         = require("express");
var bodyParser      = require("body-parser");
var methodOverride  = require("method-override");

var app             = express();

app.use(bodyParser());
app.use(methodOverride());


app.get("/",function(req,res){
    res.render("index.ejs");
    console.log("GET received.");
});
app.put("/",function(req,res){
    console.log("PUT received: " + req.body.userName + " - " + req.body.password);
});

app.listen(1337);
console.log("Listening on 1337.");
Run Code Online (Sandbox Code Playgroud)

客户

<!DOCTYPE html>
<html>
    <head>
        <title>TODO supply a title</title>
    </head>
    <body>
        <form action="/" method="post">
            First
            <input type="text" name="first">
            Last
            <input type="text" name="last">
            <input type="hidden" name="_method" value="put">
            <button type="submit">Submit</button>
        </form>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

javascript connect node.js express

17
推荐指数
2
解决办法
1万
查看次数

Express不能PUT/DELETE方法.出了什么问题?

好吧我有一个简单的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客户端以相同的结果发出同样的请求.

我已经阅读了一个与我有同样问题的话题,尽管在评论之后答案并没有解决我的问题.

问题我已经研究了 表达式删除和没有方法覆盖的表达式 …

rest mongoose mongodb node.js express

15
推荐指数
1
解决办法
5万
查看次数