我已为这两个应用添加了SSL。
假设https:// www.a.com
和https:// www.b.com
。
https:// www.a.com
正在从https:// www.b.com
到$.ajax()
来电访问 wcf 服务。
我也在使用 jsonp 来实现此功能。当这些应用程序不是 https 时,它可以正常工作。但是当我将其设为 https 时,$.ajax()
调用失败了。它在此$.ajax()
电话上的 firebug 中提供“Internel服务器错误”。
我们可以在安全模式下做这样的事情吗?
答案 0 :(得分:5)
使用CORS(Cross Orignin resource sharing)
在预检请求期间,
您应该看到以下两个标题:
访问控制请求-方法
访问控制请求报头
这些请求标头要求服务器提供实际请求的权限。
您的预检响应需要确认这些标题,以便实际请求正常工作。
例如,假设浏览器使用以下标头发出请求:
访问控制请求方法:POST
Access-Control-Request-Headers:X-Custom-Header
然后,您的服务器应使用以下标头进行响应:
Access-Control-Allow-Origin:http://yourdomain.com
Access-Control-Allow-Methods:GET,POST
接入控制允许接头: X-定制报头
使用JSON-P和中间页:
答案 1 :(得分:1)
通过加密(https)连接读取/写入JSON数据听起来好多了。让WCF在端点处理您想要的任何内容,但与简单的JSON消息进行通信。 IMHO ...
答案 2 :(得分:1)
我们可以通过跨域使用jquery ajax调用来访问https上的WCF服务,但是当引发此类调用时我们会收到安全警报。
根据Same-origin policy,如果它是相同的域和相同的协议,我们可以访问。
有关详细信息,请参阅Same-origin policy
答案 3 :(得分:0)
就jsonp请求而言,https vs http应该没什么特别之处。内部服务器错误通常表示Web服务器引发异常。什么是状态代码(500)?
如果它是500,我会看看你是否可以使用chrome的调试器或firebug识别请求中的任何差异。
答案 4 :(得分:0)
我只是在主机服务器上创建一个服务,接受来自客户端的请求。然后,该服务将发出跨域请求并将数据发送回客户端。这样你就不必改变任何配置。