如何在Orchard CMS中处理来自JS的跨域Web服务调用
How to handle cross-domain web service calls from JS in Orchard CMS
我正在尝试从HTML小部件中跨域调用Web服务。这似乎行不通。它在同一域下工作得很好。我正在尝试在 Orchard 中创建一个登录页面,该页面可用于登录另一个域上的软件。Web 服务正在验证用户凭据并返回一个布尔值,然后生成用户身份验证。
我读到我可以使用HTTP处理程序或其他Web服务(在Orchard端)来调用另一个域上的Web服务,但我对MVC或Orchard不够熟悉,无法做到这一点。如何将其中一个添加到我的 Orchard Web 应用程序?
来自客户端代码中的跨域调用在所有主流浏览器中都是禁忌。你可以
- 使用 CORS,即在 Web 服务响应中
Access-Control-Allow-Origin
标头设置为http://your-caller-domain.com
,以允许来自您的网站域的请求 - 使用 JSONP 技术
- 在应用程序中创建自定义代理 API(使用纯 ASP.NET MVC 控制器或 WebAPI 控制器),该 API 将使用类在服务器端执行调用
WebClient
并将响应返回给您。
选项按从最佳到最差的顺序排列。大多数浏览器都支持CORS浏览器,除了IE8/9(通过XDomainRequest
部分支持)和更早版本。不过,有一些解决方法。
请注意,前两个涉及 Web 服务端的更改 - 如果您做不到,选项 3. 是唯一剩下的一个。
相关文章:
- 托管时,angular.js web应用程序中未显示内容
- 在JS web应用程序中,如何确保具有访问令牌的恶意用户无法刷新它
- 节点.js Web 服务器中的结束后写入错误
- 节点.js Web 服务器不会重新加载
- 如何从节点.js Web 服务器连接到数据库服务器
- 将 Outlook 与 JS Web 应用程序集成
- 构建一个角度合理的 JS Web 项目
- Node.js Web 服务是什么样的
- 如何在我的节点中包含另一个参数.js Web 服务
- 使用Backbone.js在待办事项中对数据集合进行分页.js Web应用程序
- Node JS web服务器中的函数管道
- 如何在JS web worker中循环查询worker的可用性而不阻塞
- 从客户端向Node.js Web服务器发送JSON
- Node.js Web服务器;显示pgp-asc文件的内容,而不是提示下载
- js web工作程序内存泄漏
- 我应该如何编写一个同时包含服务器端和客户端代码的node.js web应用程序
- JS/web调试器跟踪HTTP请求的来源
- 如何在angular js web应用中使用ckeditor
- 如何通过angular js将数组插入到node js web服务中
- Three.js Web Worker兼容吗?importScripts("three.js")给出