我需要对同一域的安全 (HTTPS) URL 进行异步调用。
目前该页面正在使用常规 HTTP(非安全)。
换句话说:这是调用同一域中但使用 HTTPS 的 URL。
在将此调用切换到 HTTPS 之前,我结束了实现服务器端代理以允许跨域 AJAX 调用,但现在我面临同源策略,因为 HTTP 和 HTTPS 也被视为不同的来源。所以这个代理是无法使用的。
总结:这种场景下如何做跨域、异步的POST请求?
各种注意事项:
- 我无法接受任何建议 JSONP 的答案。异步调用必须使用 POST 动词。
- 我正在使用最新版本的 jQuery。答案可以基于这个库,或者任何其他解决这个问题的库。
- 通过 HTTPS 访问整个页面并不是解决方案。
- 服务器平台是Microsoft .NET 4.0 (ASP.NET 4.0)。
UDPATE: CORS 不是一个选择。现代浏览器对此没有广泛支持。
首先,我对@missingo 和@PiTheNumber 的两个问题都+1。
花了很多时间后,我得出的结论是我要把整个页面切换到 HTTPS。那是因为:
无论如何,谢谢,因为这两个答案对我得出这个结论有很大帮助。
UPDATE
@Sam 添加了任何人都可能感兴趣的评论。这是关于如何在 Internet Explorer 8 和 9 中获取 CORS(请参阅#7):http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)