为了为CORS(跨域请求)建立一个合适的测试套件,我需要能够直接从脚本处理HTTP OPTIONS方法。因此,我有一个简单的PHP脚本来检测OPTIONS方法,并通过输出一些特定的头来做出相应的React。
PHP方面不是问题。如果我使用curl来执行GET/POST/HEAD/PUT/等。要求他们都去脚本,它显然处理他们很好。但是,如果我发出OPTIONS请求,它永远不会到达脚本:Apache立即回复,列出了一组它认为适合此资源的方法。我可以看出脚本没有运行(没有日志记录,它的输出没有一个到达响应,等等)。
我已经检查了Apache的配置,确保没有可用的.htaccess的方式,我已经调整了一堆东西,如限制/限制除指令,但我不能让它改变它的行为。我也试着找到我年轻时的一种技术的信息,它可能在这里有所帮助:NPH(非解析头)脚本;但显然现在已经消失了(至少,我找不到任何关于它的最新信息)。
所以问题是:如何调整Apache配置,使脚本能够处理OPTIONS?
1条答案
按热度按时间cbeh67ev1#
我刚刚测试了我自己的PHP(5.3,Apache 2.2),它仍然可以工作(因为它已经有一段时间了)。OPTIONS被发送出去,并出现在$SERVER数组中
目标应该是将设置恢复为默认值(这应该可以工作),然后使用您需要的其他选项构建您的conf备份。
否则,如果没有看到.conf文件,我们就等于是在盲目飞行--所以这里有一些东西需要寻找。
1.限制指令。你说你检查了那里,但只是为了调试,删除所有引用。包括任何在vhosts以及目录可以单独更改。
1.同样的限制除外(你说你尝试过-只是删除它们所有)
1.检查.conf和.htaccess是否基于
RequestHeader
或REQUESTHEADER
的任何重定向或其他条件(进行搜索和分析)1.[我刚才也读过一些关于检查
THE_REQUEST
的内容,但以前从未听说过。也值得检查吗?]1.最后,检查您是否为OPTIONS指定了特定的处理程序,即
Script OPTIONS /cgi-bin/optionshandler
,并且您的PHP处理程序同样被指定为仅处理GET和POST。再次记住,vhosts和目录以及.htaccess可以单独更改,因此请检查它们。我能想到的就这些了。否则,就像我建议的那样,从头开始(它工作),然后建立其他一切,直到它不工作。