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

Kap*_*gar 5 ajax https wcf jquery cross-domain

我为这两个应用程序添加了SSL.

假设https:// www.a.comhttps:// www.b.com. https:// www.a.com正在通过调用访问wcf服务.我也在使用jsonp这个功能.当这些应用程序不是https时,它工作正常.但是当我将其设为https时,呼叫失败了.它在此次调用中给出了firebug中的"Internel服务器错误".https:// www.b.com$.ajax()$.ajax()$.ajax()

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

Dur*_*n.H 5

建议1:

使用CORS(交叉Orignin资源共享)

预检请求期间,

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

  • 访问控制请求法

  • 访问控制请求报头

这些请求标头要求服务器发出实际请求的权限.

您的预检响应需要确认这些标题才能使实际请求生效.

例如,假设浏览器使用以下标头发出请求:

  • 来源:http://yourdomain.com

  • 访问控制请求方法: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

参考