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

jfi*_*dof 6 .net javascript cross-domain orchardcms cors

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

我读到我可以使用HTTP处理程序或其他Web服务(在Orchard一侧)来调用另一个域上的Web服务,但我对MVC或Orchard不熟悉这样做.如何将其中一个添加到我的Orchard Web应用程序中?

Pio*_*myd 11

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

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

选项从最佳到最差排序.大多数浏览器都支持CORS,IE8/9(部分支持通过XDomainRequest)和更旧版本除外.但是有一些解决方法.

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