Orchard CMS中如何处理来自JS的跨域Web服务调用

2023-11-23

我正在尝试从 HTML 小部件内跨域调用 Web 服务。这似乎不起作用。它在同一域下运行得很好。我正在尝试在 Orchard 中创建一个登录页面,可用于登录另一个域上的我的软件。 Web 服务正在验证用户凭据并返回一个布尔值,然后该布尔值将生成用户身份验证。

我读到我可以使用 HTTP 处理程序或另一个 Web 服务(在 Orchard 端)来调用另一个域上的 Web 服务,但我对 MVC 或 Orchard 不够熟悉,无法执行此操作。如何将其中之一添加到我的 Orchard Web 应用程序中?


在所有主流浏览器中,客户端代码内的跨域调用都是禁忌。 你可以

  1. Use CORS, IE。放Access-Control-Allow-Origin标头至http://your-caller-domain.com在 Web 服务响应中允许来自您网站域的请求
  2. Use JSONP技术
  3. 创建自定义代理API在您的应用程序中(使用简单的ASP.NET MVC 控制器 or a WebAPI一)将使用在服务器端执行调用WebClient类并将响应返回给您。

选项按从最好到最差的顺序排列。大多数浏览器都支持 CORS,除了 IE8/9(通过XDomainRequest)和更老的。不过,有一些解决方法。

请注意,前两个涉及 Web 服务方面的更改 - 如果您做不到,则选项 3. 是唯一剩下的选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Orchard CMS中如何处理来自JS的跨域Web服务调用 的相关文章

随机推荐

  • 如何在 C# 中的控制台窗口上显示列表项

    我有一个List包含所有数据库名称 我必须在控制台中显示该列表中包含的项目 使用Console WriteLine 我怎样才能实现这个目标 实际上你可以做得很简单 因为列表有一个ForEach方法 因为你可以传入Console WriteL
  • Python Tornado - 困惑如何将阻塞函数转换为非阻塞函数

    假设我有一个长时间运行的函数 def long running function result future Future result 0 for i in xrange 500000 result i result future set
  • { } 和等号变量之间的区别

    我对 C 编程有点陌生 我在谷歌上找不到我的答案 所以希望它能在这里得到答案 以下之间有区别吗 unsigned int counter 1 or unsigned int counter 1 这本书使用了第一个选项 它让我感到困惑 因为它
  • 检查 typescript 类是否有 setter/getter

    我有一个打字稿类 它具有以下属性 export class apiAccount private balance apiMoney get balance apiMoney return this balance set balance v
  • 在iPhone上,是否可以查出我们连接的是哪个WIFI网络?

    如果是的话 我们还可以获得有关网络配置的其他信息吗 一种有用的方法是获取当前网络的 SSID 有 API 可以做到这一点吗 更新 我在这里发现了类似的问题 iPhone SDK能否获取当前连接的Wi Fi SSID 尝试以下方法 impor
  • Java 可变长度参数与数组,简单的语法糖?

    我正在当地社区大学学习数据结构和算法课程 以获取乐趣 该课程的教材是Y Daniel Liang的Java 编程简介 第 10 版 这本书本身非常扎实 在处理Java util Arrays Liang提到了Java的 可变长度 参数 他写
  • Three.js 鼠标按下时旋转对象并移动

    我试图在场景中获得良好的鼠标移动 以便我可以围绕对象旋转 我有两个问题 我可以弄清楚如何限制运动 使其永远不会在 Y 轴上旋转低于 0 度 我不想从下面看到物体 只想从上面看到 而我想不通的第二件事就是如何让动作变得流畅 现在我在 jsfi
  • 如何在Spring中进行条件自动装配?

    有没有人尝试过根据条件将不同的 bean 自动连接到 Spring 管理的 bean 中 例如如果满足某些条件 则注入A类 否则注入B类 我在 Google 搜索结果之一中看到可以使用 SpEL Spring 表达式语言 但无法找到工作示例
  • 使用 terraform 获取 Route53 上托管域的 zone_id

    您好 我正在使用 terraform 创建 Route53 记录 我已经有一个托管域 公共 可以说example com如何获取其 zone id 并附加到记录 如何获取现有 Route53 托管区域的 zone id 我已经编写了一个文件
  • SQL如何比较两个不同表中的两列

    我有两个表 其中表 1 包含 4 列 表 2 包含 8 列 我在 table1 中有两列 我想将它们与 table2 中的两列进行比较 Table 1 have column1 and column2 that needs to be co
  • 由于 PHP 版本,Apache 中的 PHPMyAdmin 500 内部服务器错误

    Version OS lsb release a Ubuntu 18 04 5 LTS PHP php v 8 0 1 Apache apache2 v 2 4 29 Ubuntu MySQL mysql version mysql 版本
  • 如何最小起订量功能

    尝试对其构造函数采用 Func 的类进行单元测试 不知道如何使用 Moq 来模拟它 public class FooBar public FooBar Func
  • 如何防止使用 Git 自动合并?

    我正在尝试将本地分支合并到主分支中 而无需 Git 进行自动合并 我想 手工挑选 我想要合并到 master 中的内容 当我使用 Git 的 difftool 命令时 我可以比较并选择要添加到 master 分支中的内容 但是当我进行合并时
  • 当属性可以抛出异常时对象初始值设定项和 Dispose

    我有以下设置 public class SomeClass private DirectoryEntry root private DirectorySearcher searcher public SomeClass root new D
  • 带有变量赋值的基本 vue.js 2 和 vue-resource http get

    我真的很难让最基本的 REST 功能在 vue js 2 中工作 我想从某个端点获取数据并将返回值分配给我的 Vue 实例的变量 这是我已经走了多远 var link https jsonplaceholder typicode com u
  • .split(/\s+/) 和 .split(" ") 之间的区别?

    首先 抱歉我的英语不好 p 我正在查看下一个 js 代码片段 var classes element className split s 该代码会将 和 元素的完整类名拆分为包含每个类的数组 但是 使用之间有什么区别 split s 并使用
  • 如何正确使用lua_pop()函数?

    谁能告诉我如何在 C 中正确使用 lua pop 函数 当我使用 lua get 函数时我应该调用它吗 喜欢 lua getglobal L 某事 lua pop L 1 或者如何使用它 垃圾收集器会在阈值之后清除这些东西吗 谢谢 你打电话
  • Angular:将 XML 转换为 JSON

    我有这种方法 我从远程服务器接收 XML 响应 我需要将 XML 转换为 JSON 以便 Angular 2 可以处理数据 private extractData res Response let xml res body console
  • 静态图像的OpenCV haar训练

    我尝试训练 haar 级联分类以进行卡片套装检测 没有旋转并且图像没有失真 例如 我有文件 Clubs png 其中包含白色背景 20x20 像素的俱乐部图像 这个教程好纠结http note sonots com SciSoftware
  • Orchard CMS中如何处理来自JS的跨域Web服务调用

    我正在尝试从 HTML 小部件内跨域调用 Web 服务 这似乎不起作用 它在同一域下运行得很好 我正在尝试在 Orchard 中创建一个登录页面 可用于登录另一个域上的我的软件 Web 服务正在验证用户凭据并返回一个布尔值 然后该布尔值将生