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

时间:2013-10-03 18:37:07

标签: javascript .net cross-domain orchardcms cors

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

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

1 个答案:

答案 0 :(得分:11)

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

  1. 使用CORS,即。在Web服务响应中将Access-Control-Allow-Origin标头设置为http://your-caller-domain.com,以允许来自您网站域的请求
  2. 使用JSONP技术
  3. 在您的应用程序中创建自定义代理API (使用普通ASP.NET MVC controllerWebAPI),将使用WebClient类在服务器端执行调用并将回复退还给您。
  4. 选项从最佳到最差排序。大多数浏览器都支持CORS,IE8 / 9(通过XDomainRequest部分支持)和更旧版本除外。虽然有这方面的解决方法。

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