ajax跨域请求wcf服务,我们可以跨域使用Jquery $ .ajax()调用通过https访问WCF服务吗?...

我为两个应用程序都添加了SSL。

假设https:// www.a.com和https:// www.b.com。

https:// www.a.com正在通过$.ajax()调用从https:// www.b.com访问wcf服务。

我也在此功能使用jsonp。 如果这些应用程序不是https,则可以正常工作。 但是$.ajax()调用在我设为https时失败。 在此$.ajax()调用中,它将在Firebug中给出"内部服务器错误"。

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

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

建议1:

使用CORS(跨Orignin资源共享)

在预检请求期间,

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

Access-Control-Request-Method

Access-Control-Request-Headers

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

您的飞行前响应需要确认这些标头,才能使实际请求生效。

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

Origin: http://yourdomain.com

Access-Control-Request-Method: POST

Access-Control-Request-Headers: X-Custom-Header

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

Access-Control-Allow-Origin: http://yourdomain.com

Access-Control-Allow-Methods: GET, POST

Access-Control-Allow-Headers:

X-Custom-Header

参考

建议2:

使用JSON-P和中间页:

创建一个中间页面,该页面使http请求进入https页面并返回JSON-P结果

如果中间页面在同一域中,则直接使用它,否则发出跨域ajax请求并使用JSON-P

参考

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

根据相同来源策略,如果它是相同的域和相同的协议,我们可以访问。

有关详细信息,请参见同源政策

尝试将CORS添加到主机服务器,然后应该可以正常使用

大多数现代浏览器都支持CORS(跨源资源共享),因此您可以明确地尝试一下。简单来说,您的服务器必须重新运行以重新放置标头Access-Control-Allow-Origin:https:// www.a .com要了解更多信息,请访问en.wikipedia.org/wiki/Cross-origin_resource_sharing

听起来,如果仅通过加密(https)连接读取/写入JSON数据,您的需求就会大大提高。让WCF处理端点处的任何内容,但与简单的JSON消息进行通信。恕我直言...

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值