2013-11-22 40 views
10

这让我疯狂!我正在尝试使用Amazon S3 CORS请求,但他们没有在我的计算机上工作。看来我的电脑阻止或忽略了OPTIONS请求。如果我从终端运行curl命令:计算机屏蔽CORS选项要求

curl -i -X OPTIONS http://testing.bennadel.com.s3.amazonaws.com 

...我得到:

卷曲:(52)空从服务器

答复但是,如果我运行相同在相同路由器在不同的计算机(AirBook)上要求,我得到预期的响应(XML格式):

信息不足。需要原始请求标头。

我试过刷新我的dsn缓存(通过dscacheutil)。我试着改变我的DNS以使用Google的公共DNS。我试过重新启动我的电脑。没有运气!这台计算机不断阻止选项请求和我尝试允许它的每一台其他计算机。

对此提出建议?这台电脑(iMac)通过WiFi连接到我的路由器;但是,成功的OPTIONS请求的AirBook也是如此。

另请注意,非OPTIONS请求到相同的URL工作正常(即GET)。

+0

防火墙/代理设置?检查你的日志(Console.app)是否有防火墙消息。尝试捕获数据包(tcpdump或Wireshark)以查看实际上通过线路(以及空响应来自哪里)的内容(如果有的话)。 – RJHunter

+0

关于Console.app的好想法(我不习惯在这个级别上调试)。它看起来像我试图执行OPTIONS HTTP请求,这显示在控制台中: 11/22/13 10:18:17.967 AM acwebsecagent [294]:连接:身份验证密钥未提供或无效,应用连接失败策略。 CMode:0 TMode:0 – user3021922

+3

一些谷歌搜索说这个错误可能与我已经安装的“Cisco AnyConnect”有关(对于VPN要求)。从Apple支持:https://discussions.apple。com/thread/3507331 – user3021922

回答

8

更具体地说,问题似乎出现在AnyConnect的Web安全模块中。我可以通过卸载并重新安装带Web安全选项的AnyConnect选项来解决此问题;或者只需运行websecurity_uninstall.sh脚本。 (这是与AnyConnect 3.1.04074。)

感谢@ user3021922和其他人用于识别问题 - 这也让我发疯。

+0

有同样的问题,运行'websecurity_uninstall.sh'修复了它(至少在我的OS X 10.10中它在'/ opt/cisco/anyconnect/bin/websecurity_uninstall.sh'中)。 – DfKimera

+0

使用GUI卸载,但也为我工作。实际上,任何请求都可以为我工作(GET/POST /不管),直到我尝试上传文件,然后被我的机器上的这个模块完全阻止。 – Kiluminati

0

问题是Cisco AnyConnect的网络安全模块。在我们的情况下,我们无法卸载AnyConnect或对其进行任何更改(大型公司设置,其中更改将非常昂贵/耗时)。幸运的是,似乎有两种解决方案可行。

  1. 思科只阻止端口808080(其他端口看起来不错)。
  2. 思科允许安全https请求。

所以,如果你能控制服务器,可以把它放在不同的端口上,或者使用https,你的用户就没事了。