从ajax调用调用web服务和从MVC控制器调用web服务之间的区别

本文关键字:调用 服务 web 区别 之间 ajax MVC 控制器 | 更新日期: 2023-09-27 18:27:15

我有一个MVC 5项目,后端有一个OData V4 web服务,在检索数据(而不是视图)时,我开始遇到一些困惑。

我不确定我应该通过ajax还是通过HTTP客户端的MVC控制器操作来进行web服务调用。我知道,在后一种情况下,您通常需要一些额外的分离,因为控制器操作可能不应该直接使用HTTP客户端调用web服务,但无论如何。我还要重申,我的问题与意见/党派意见无关;我总是调用控制器操作来返回这些。

当您需要对返回的数据执行额外的工作时,执行控制器操作是否唯一有利?

如果我只是从web服务中检索一个对象列表,那么通过调用控制器操作来采取额外的步骤有意义吗?

很抱歉,如果以前已经回答过这个问题。我发现了一些模糊相似的问题,但没有太具体的问题。

谢谢。

从ajax调用调用web服务和从MVC控制器调用web服务之间的区别

如果web服务位于web应用程序域以外的域中,则在尝试从页面进行ajax调用时可能会遇到同源策略问题。基本上,这不是问题,而是一种安全功能,其中网络浏览器允许网页a中包含的脚本访问网页B中的数据,但前提是两个网页具有相同的来源。原点定义为URI方案、主机名和端口号的组合。

如果您有此问题,可以尝试从服务器代码(控制器/服务)访问web服务。这还允许您解析返回的响应,并将其转换为视图真正想要的另一种格式。如果您正在访问不会经常更改的数据,您可以使用MemoryCache或其他点网缓存解决方案对其进行缓存。这将为您节省一些网络通话并缩短页面加载时间。