【问题标题】:Can we access WCF service over https using Jquery $.ajax() call in cross domain?我们可以在跨域中使用 Jquery $.ajax() 调用通过 https 访问 WCF 服务吗?
【发布时间】:2012-01-28 22:39:23
【问题描述】:

我已经为这两个应用程序添加了 SSL。

假设https:// www.a.comhttps:// www.b.comhttps:// www.a.com 正在通过$.ajax() 调用从https:// www.b.com 访问wcf 服务。 我也在使用 jsonp 来实现这个功能。当这些应用程序不是 https 时,它可以正常工作。但是当我 https 调用 $.ajax() 时会失败。它在此$.ajax() 调用中的firebug 中给出“内部服务器错误”

我们可以在安全模式下做这样的事情吗?

【问题讨论】:

  • 您在服务器端看到的异常是什么?

标签: jquery ajax wcf https cross-domain


【解决方案1】:

听起来,通过加密 (https) 连接读取/写入 JSON 数据会好得多。让 WCF 在端点处处理您想要的任何内容,但使用简单的 JSON 消息进行通信。恕我直言...

【讨论】:

    【解决方案2】:

    我们可以在跨域中使用 jquery ajax 调用通过 https 访问 WCF 服务,但是当此类调用被引发时我们会收到安全警报。

    根据Same-origin policy,如果它是相同的域和相同的协议,我们可以访问。

    详情请见Same-origin policy

    【讨论】:

    • 尝试将CORS添加到主机服务器,然后你应该让它工作
    • 大多数现代浏览器都支持CORS(跨源资源共享),因此您可以肯定地尝试一下。简单来说,您的服务器必须在respose header Access-Control-Allow-Origin中重新运行:https://www.a.com 了解更多请访问en.wikipedia.org/wiki/Cross-origin_resource_sharing
    【解决方案3】:

    建议一:

    使用CORS(Cross Orignin resource sharing)

    预检请求期间

    您应该看到以下两个标题:

    • 访问控制请求方法

    • 访问控制请求标头

    这些请求标头正在向服务器请求发出实际请求的权限。

    您的预检响应需要确认这些标头,以便实际请求工作

    例如,假设浏览器发出带有以下标头的请求:

    • 来源:http://yourdomain.com

    • 访问控制请求方法:POST

    • 访问控制请求标头:X-自定义标头

    然后,您的服务器应使用以下标头进行响应:

    • 访问控制允许来源:http://yourdomain.com

    • 访问控制允许方法:GET、POST

    • 访问控制允许标头: X-Custom-Header

    Reference

    建议二:

    使用JSON-P 和中间页面:

    • 创建一个中间页面,向 https 页面发出 http 请求并返回 JSON-P 结果
    • 如果中间页面在同域中,则直接使用它,否则跨域ajax请求并使用JSON-P

    Reference

    【讨论】:

      【解决方案4】:

      就 jsonp 请求而言,https 与 http 应该没有什么特别之处。内部服务器错误通常表明 Web 服务器引发了异常。什么是状态码(500)?

      如果是 500,我会看看您是否可以使用 chrome 的调试器或 firebug 识别请求中的任何差异。

      【讨论】:

        【解决方案5】:

        我只是在主机服务器上创建一个接受来自客户端的请求的服务。然后,该服务将发出跨域请求并将数据发送回客户端。这样您就不必更改任何配置。

        【讨论】:

          猜你喜欢
          • 2015-06-15
          • 2013-01-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-22
          • 1970-01-01
          • 2012-03-05
          • 2010-11-19
          相关资源
          最近更新 更多