SSL CORS与Zend Guard不兼容

我已经将所有内容添加到我的Apache htaccess中:

头设置Access-Control-Allow-Headers:X-Requested-With Header set Access-Control-Allow-Methods:OPTIONS Header add Access-Control-Allow-Methods:GET Header add Access-Control-Allow-Methods:POST Header add Access-Control-Allow-Headers:Content-Type Header添加Access-Control-Allow-Headers:Depth Header添加Access-Control-Allow-Headers:User-Agent Header添加Access-Control-Allow-Headers:X-File-Size标题添加Access-Control-Allow-Headers:X-Requested-With Header添加Access-Control-Allow-Headers:If-Modified-Since Header添加Access-Control-Allow-Headers:X-File-Name Header添加Access-Control -Allow-Headers:Cache-Control Header set Access-Control-Allow-Origin:http://mysite.com Header add Access-Control-Allow-Origin:https://mysite.com Header set Access-Control-Allow-凭证:是的 

我把它添加到我的jquery $ .ajax:

  xhrFields:{
     withCredentials:是的
 } 

绝对没有用。

我正在做$ .ajax

 输入:'POST',
 dataType:'json' 

我想通过设置上面的所有标题,我可以做json而不是jsonp(请不要jsonp。除了jsonp之外的任何东西。我无法成功解雇。please.god.no)

我在极限。 我得到了好东西

  XMLHttpRequest无法加载https://mysite.com/aDirectory/aSecureFile.php 。  Access-Control-Allow-Origin不允许使用Origin http://mysite.com 。 

请帮忙。 我在这里死了。 我保证我到处都是,哦,我到处都看。

提前谢谢了!

明晰

我的标题都出现了。 我可以在我的响应标题中看到它们,但我仍然遇到上述错误。 服务器阻塞了吗? 浏览器? 有什么特别的事我要做https吗? Apache上还有其他设置我必须设置为允许CORS吗? 我的jQuery $ .ajax是否正确? 除了数据和成功与错误(以及URL始终为https)之外,这就是我对jQuery $ .ajax所做的一切。

再次感谢!

跨域AJAX预检失败原点检查没有帮助(我不认为)。 添加

 标题集Access-Control-Allow-Headers:ORIGINS 

(调整集合和添加)。 所有响应标题都在管道下方。

添加了这些

 标题添加Access-Control-Allow-Headers:Origin
标题添加Access-Control-Allow-Headers:Accept 

依然没有

请求标题

这些有帮助吗?

 接受:application / json,text / javascript, / ;  Q = 0.01
内容类型:应用/ X WWW的窗体-urlencoded; 字符集= UTF-8
来源: http : //mysite.com
推荐人: http : //mysite.com/
 User-Agent:Mozilla / 5.0(Windows NT 6.1; WOW64)AppleWebKit / 537.11(KHTML,类似Gecko)Chrome / 23.0.1271.64 Safari / 537.11 

PHP

 标题(“Access-Control-Allow-Origin:http://mysite.com”);
标题(“Access-Control-Allow-Origin:https://mysite.com”); 

响应标题清晰度

RESPONSE HEADERS正在通过所有正常请求而不是跨域https ajax。

服务器

CentOS 5.8,Apache 2.2.2,PHP 5.3,cPanel,WHM

很好,如果PHP没有执行

所以,在我的匆忙中,我直接复制了slashingweapon的cors.php,没有php标签。 我使用上面的设置用$ .ajax创建了一个测试页面。

它工作(因为在ajax启动时没有错误)完成响应头。 一旦我将标签添加到PHP,就会发生错误。 我检查了它是否是一个目录问题,将它放在root和子目录中,只要PHP没有执行就好了。

这对任何人都意味着什么?

是否需要翻转PHP设置?

感谢大家和我一起磨练这个!

我们有一个心跳

看起来htacess中的多个参数会破坏我的服务器。 我将上面的所有选项都减少到了这个(这对我来说很好,但我可怜的傻瓜谁需要更多):

Header set Access-Control-Allow-Origin: http://mysite.com Header add Access-Control-Allow-Methods: POST

我放入PHP的所有内容都是

 回声“这至少起作用”: 

响应就出现了。 一旦我弄清楚导致我的PHP失败的原因,我就会发布它。

再次,谢谢大家!

Zend Guard这个问题?

Sooooooooo,对不起伙计们。 忘了添加我的网站运行Zend Guard。 有一种感觉导致它。

当客户端尝试执行CORS请求时,它首先发送“预检”请求以确保服务器支持CORS。 如果预检请求通过,则将发送实际请求。

您的服务器需要向CORS请求发送正确的响应。 我有一个CORS PHP要点,说明如何执行此操作。

首先,您需要确保启用mod_headers

 a2enmod headers 

然后,作为测试,您可以在.htaccess文件中将原点设置为通配符

 Header set Access-Control-Allow-Origin * 

我看到有和没有冒号的文档(:)我现在没有系统可以测试,所以你也可以玩它。

当然在启用标题后,您需要反弹apache。