【发布时间】:2011-05-15 10:36:43
【问题描述】:
我设置了 2 台 apache 服务器,一台用于 80 端口,另一台用于 443 HTTPS。同一域可通过http://www.domain.com 和https://www.domain.com 访问。 HTTPS 似乎工作正常,如果我使用浏览器访问网络,页面加载正常。
我有脚本 www.domain.com/ajax.php 可以在 80 和 443 上正常工作,当通过浏览器(Chrome、FF、IE、..)访问时,但在我的页面中我使用 Jquery 进行 POST ajax 查询.当我执行以下操作时,没有任何反应,在 Chrome 的开发人员工具中,我只看到请求处于“待处理”状态,并且没有任何来自服务器的输出。
$.post('https://www.domain.com/ajax.php?action=test', {}, function() {});
是否存在问题,即页面发出请求是在 HTTP 连接上,而 ajax 请求使用 HTTPS ?或者这种奇怪的行为还有其他原因吗?同样奇怪的是,常规页面加载正常,例如https://www.domain.com/ - 没问题。待处理请求的问题只出现在 AJAX 调用中。
编辑:
我不知道这是否重要,但这里是在进行一次 AJAX 调用时此 Apache2-SSL 服务器的 error_log 的输出:
[Thu May 19 21:05:30 2011] [info] [client 84.16.x.x] Connection to child 0 established (server www.domain.com:443)
[Thu May 19 21:05:30 2011] [info] Seeding PRNG with 144 bytes of entropy
[Thu May 19 21:05:30 2011] [info] [client 84.16.x.x] (70014)End of file found: SSL handshake interrupted by system [Hint: Stop button pressed in browser?!]
[Thu May 19 21:05:30 2011] [info] [client 84.16.x.x] Connection closed to child 0 with abortive shutdown (server www.domain.com:443)
【问题讨论】:
-
你在 php 上使用 session 吗?那么也许你需要用 session_write_close(); 停止锁定会话;在需要所有会话变量之后...
标签: jquery ajax apache post https