【问题标题】:Connecting to external webservice method from anuglar application从 Angular 应用程序连接到外部 Web 服务方法
【发布时间】:2016-02-02 14:39:38
【问题描述】:

我是一个新手,所以如果这个问题看起来很愚蠢,请原谅我。 我已经获得了一个直接指向外部服务 POST 方法的 URL,它是服务总线的一部分。我的前端应用程序是用 angularJS 编写的。如何连接到此方法?到目前为止,我一直在 ASP.NET MVC 控制器中使用一些模拟数据,在角度服务中调用它:

MyService.search = function (parameters) {
    return $http.post('/Home/Search', parameters);
};

调用这个外部方法的方法是什么?我应该在 Controller 中构建一些逻辑吗?创建一个调用这个外部的网络服务? 我将非常感谢您的帮助。

编辑:简单地将我的模拟 URL 替换为正确的调用搜索方法后出现错误:

[异常...“”nsresult:“0x805e0006()”位置:“JS框架::http://localhost:7311/scripts/angular.js::createHttpBackend/<::10704>

return logFn.apply(console, args);

【问题讨论】:

  • 您是否尝试使用完整的 url 调用它?
  • 当我简单地将我的模拟 url (/Home/Search) 更改为我得到的那个时,我在点击搜索按钮后得到以下异常: [Exception... "" nsresult: " 0x805e0006 ()" location: "JS frame :: localhost:7311/scripts/angular.js :: createHttpBackend/
  • 最好将错误信息放在问题中。这样我们可以更好地阅读它

标签: c# asp.net angularjs asp.net-mvc


【解决方案1】:

你可以尝试几件事。

  1. 使用浏览器连接到服务(如果可行,请在 $http.post 中尝试)
  2. 确保服务已启用 CORS,否则无法从其他域连接。

【讨论】:

  • 是的,我纠正了小的拼写错误,现在我错过了 CORS 错误。如果我想创建自己的服务(调用这个外部服务)以便能够在将数据传递给 UI 之前稍微修改一下数据,该怎么办?
  • 这是可能的...但是您仍然需要修复CORS错误,这只能在服务器端完成。这意味着如果您无法更改此设置,则需要询问服务的创建者
  • 我已经写信给服务开发人员了。您能否告诉我应该在哪里查找如何创建调用外部服务的信息?不确定是不是今天,但我什至不知道如何向 Google 询问。
  • 如果您想编写自己的服务,您需要考虑几件事。第一个是我将使用什么技术(例如 WCF)如果你确定了你的技术,你可以看看如何从你自己的服务到你想要的服务调用。并操纵来自该服务的数据。您将调用自己的服务来调用外部服务,而不是从您的 Angular 应用程序调用外部服务。
  • 嗨。我刚刚制作了调用所有外部方法的 ApiController(它有效!:))。这是一个好习惯吗?还是应该有一个单独的服务层,然后控制器调用这个服务?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-25
  • 2011-04-09
  • 2020-06-02
  • 1970-01-01
  • 2019-07-30
  • 2019-11-07
相关资源
最近更新 更多