当前位置: 首页 > 面试题库 >

角度$ resource删除不会将正文发送到express.js服务器

赫连实
2023-03-14
问题内容

我正在服务器端使用angular.js和node.js(Express.js)构建一个应用程序。

由于某些原因,我在处理删除请求时遇到问题。没有人会进入服务器端。

这是我的angular.js资源代码:

$scope.deleteProject = function(projectName){
    var postData = {username: 'name', projectName: projectName};
    Project.deleteProject.delete({}, postData,
        function(res){
            alert('Project Deleted');
        },
        function(err){
            alert(err.data);
    });
}

在服务器端,我有这个:

var deleteProject = function(req, res){
    console.log(req.body);
    console.log(req.params);
    if (req.body.projectName){
        //do something
        return res.send(200);
    }
    else
        return res.send(400, 'no project name was specified');
}

现在由于某种原因根本没有身体!它是空的。我已将路线定义为app.delete。

如果我将node.js中的路由更改为post,将其更改为angular.js以保存,则效果很好。

我在这里想念什么(敲头)。

谢谢。


问题答案:

根据此堆栈溢出问题和$http服务源代码,使用的DELETE请求$http不允许在请求的正文中发送数据。
对于是否应允许请求正文,DELETE请求的规范有些含糊,但是Angular不支持它。

这允许请求主体的唯一方法是POSTPUTPATCH。因此,问题不在您的代码中的任何地方,而是在Angular的$http服务中。

我的建议是使用泛型$http(...)函数并传递适当的方法:

$http({
    method: 'DELETE',
    url: '/some/url',
    data: {...},
    headers: {'Content-Type': 'application/json;charset=utf-8'}
})


 类似资料:
  • 问题内容: 我查看了用于$ resource的AngularAPI,但没有找到将s发送到RESTful服务的方法。 我知道使用$http方法是可能的,所以,也可以使用吗? 显然,这是的选项。 动作 – {string} –动作的名称。该名称成为资源对象上方法的名称。 方法 – {string} – HTTP请求方法。有效方法为:GET,POST,PUT,DELETE和JSONP params –

  • 我遇到了一个奇怪的问题,我不明白: 当我删除我的文件appender时,它会阻止我登录到我的服务器,即使文件appender不应该负责将任何内容登录到服务器;这项任务应该只属于我的GELF appender。 下面的代码可以很好地登录到我的控制台和服务器 JAVA XML 但是,当我删除这个 和 它不再向我的服务器记录任何内容。 文件附件和记录器不应该只登录到文件而不是服务器吗?如果是这样,为什么

  • 我的效果在出错时,调用服务中的方法来显示对话。当对话完成时,它会将结果放入可观察的。 我有一个组件正在监听该服务中的可观察内容。问题是,组件第一次侦听服务,然后什么也听不到。 我正在设置该主题以避免收到错误消息,即第一次this.errorService.errorExist$没有返回任何内容。 错误服务 成分

  • 问题内容: 最近5个小时,我一直在尝试将json对象发布到PHP脚本中。我已经阅读了所有文档,似乎代码应该可以,但事实并非如此。发出并接收到请求,但是我无法访问发布的json数据,甚至不知道它是否已正确发送。我不断得到一个空的php数组,而不是json数据。 这是php脚本(test.php) 我正在使用来自https://github.com/pokeb/asi-http- request.gi

  • 问题内容: 我有使用Express和Connect中间件的功能齐全的用户注册/身份验证系统。 唯一的问题是,每次执行服务器重新启动时,会话都会中断。 https://github.com/remy/nodemon-并且nodemon每次检测到文件更改时都会重新启动node.js。 如何进行持续性会话? 问题答案: 就像您的代码告诉您正在使用MemoryStore一样。这是易失的,重启后会清除。我建