编辑:我已经更新了 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] 删除。
我来说两句