如何在 AngularJS 中发送带有多个参数的 POST

里奇霍普金斯

编辑:我已经更新了 Web 服务,如下所示。现在我可以使用 Postman 发送一个 JSON 对象并获得预期的结果(Web 服务成功地向我发送了一封电子邮件)。

我是 Angular 的新手,我使用的 Web 服务是我写的第一个,我需要帮助将 POST 发送到 Web 服务。

这是我要发送到的 ASP.NET Web API 的签名,当我使用 Postman(已更新)发送 POST 时它可以正常工作:

[HttpPost]
    public bool Post(Email msg)
    {
        return SendEmailMessage(msg);
    }

这是我在 AngularJS 中的控制器(使用 vm.msg 更新):

(function () {
angular
    .module('app')
    .controller('About', ['dataService', About]);

function About(dataService) {
    var vm = this;
    //(bunch of stuff removed for brevity)      
    vm.sendMail = function (form) {
        vm.submitted = true;
        vm.mailResult = dataService.sendMail.send(vm.msg);
        if (vm.mailResult) {
            vm.cancel();
        };
    };
    return vm;
}
})();

这是我在 AngularJS 中的服务:

(function () {
'use strict';

angular
    .module('app')
    .service('dataService', ['$resource', dataService]);

function dataService($resource) {
    return {
        sendMail: sendMail
    };

    function sendMail(msg) {
        return $resource('/api/email/:data',
            {},
            {
                send: { method: 'POST', params: { data: msg} }
            });
    };
};})();

这是我与 Postman 一起发送的 POST,它有效:

mywebservice.com/api/email 带有 JSON 对象的 POST 使用 Postman 成功发送到网络服务,并返回预期结果(网络服务向我发送电子邮件)。

不知何故,我知道我的服务搞砸了,但我无法弄清楚它有什么问题。我看过文档和示例,但它们都让您使用工厂,我正在尝试使用 iife 方法(同样,我是新手)。非常感谢任何建议。谢谢!富有的

里奇霍普金斯

这是我最终做的:

Web 服务如上编辑,允许将 JSON 对象发送给它。控制器中的代码如下:

vm.sendMail = function (form) {
        vm.submitted = true;
        vm.msg.message = vm.msg.message.replace(/(\r\n|\n|\r|\n\r)/gm, '<br/>');

        var sendMessage = new emailService();
        sendMessage.$save(vm.msg)
            .then(function () {
                vm.sendSuccess = true;
                vm.sendFailed = false;
                vm.cancel();
            })
            .catch(function() {
                vm.sendSuccess = false;
                vm.sendFailed = true;
                vm.submitted = false;
            });
    };

服务中的代码如下:

(function() {
'use strict';

angular
    .module('app')
    .service('emailService', ['$resource', emailService]);

function emailService($resource) {
    return $resource('/api/email');
};
})();

感谢您的帮助,但我真的很想学习如何使用我开始使用的 $resource 来做到这一点。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在带有多个参数的angularjs中发送POST?

如何在带有多个参数的angular5中发送POST?

如何在Swift中发送POST参数?

通过AngularJS发送带有多个数据的HTTP Post

如何在AngularJS的Web API GET请求中发送多个SQL查询参数?

如何使用Alamofire 4在Swift 3中发送带有参数和正文的JSON数据的POST请求?

如何在node.js中发送带有数据和承载授权的POST请求?

如何在POST中而不是在带有ClientCredentialsAccessTokenProvider的标头中发送ClientId和ClientSecret

如何在HTTP POST请求中发送参数?

如何在python的POST请求中发送urlencoded参数

如何在Angularjs $ state.go中发送参数?

如何在URL中发送带有URL的参数?

如何在Java中发送带有多个附件的邮件

带有参数的angularjs $ http.post

如何在Go中发送POST请求?

如何在Python中发送多维POST

如何使用MQL4在WebRequest()调用中发送带有JSON的POST?

如何在HTTP POST(angularjs + expressjs)中将数据与文件一起发送?

带有 browsersync post 方法的 Angularjs 作为选项发送

如何使用 UnityWebRequest 在 POST 请求参数中发送整数值?

AngularJS $资源多个POST

如何在Go中发送带有图片和某些参数的http发布请求?

如何在路径中发送带有两个参数的DELETE请求?

如何在 JMeter 中发送带有可变路径参数的 GET 请求?

如何在 $_POST 中使用多个参数

如何在Windows Store应用中发送带有多个附件的电子邮件

如何在POST方法的REST API中发送日期

如何在POST请求中发送两个正文?

如何在for循环Swift中发送响应POST urlsession任务?