【发布时间】:2017-12-26 22:03:20
【问题描述】:
编辑:我已经更新了 Web 服务,如下所示。现在我可以使用 Postman 发送一个 JSON 对象并获得预期的结果(网络服务成功向我发送了一封电子邮件)。
我是 Angular 的新手,我正在使用的 Web 服务是我编写的第一个 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 成功发送到 Web 服务,并返回预期结果(Web 服务向我发送电子邮件)。
不知何故,我知道我的服务搞砸了,但我不知道它出了什么问题。我查看了文档和示例,但是它们都让您使用工厂,并且我正在尝试使用 iife 方法来做到这一点(同样,我是新手)。任何建议都非常感谢。谢谢! 丰富
【问题讨论】:
-
你为什么使用
$resource?使用$http Service 会更简单。 -
另外,让表单填写消息对象而不是将其拆分为三个模型变量会更简单。
-
我使用 $resource 是因为我读到的几件事表明它更容易。如果没有,怎么办?另外,我尝试发送一个对象,但无法弄清楚如何在服务中接收它,所以我回到了单个参数。如果有更简单的方法,请将其作为答案发布 - 我很感激这些提示。