我在Firefox上找到了SuperAgent(http://visionmedia.github.com/superagent/)的问题来源。不确定SuperAgent是在AJAX调用中执行它还是FireFox正在触发它。
基本上,每次进行AJAX调用时,在实际的AJAX调用之前都会在URL上触发OPTIONS方法。很烦人,因为服务器目前不支持OPTIONS。如何在没有废话和重新编码服务器的情况下拨打电话?
由于
答案 0 :(得分:5)
好的,找到了更多细节。值得庆幸的是,在Safari上测试让我更深入地了解了实际发生的事情,并在此处运用了我的知识。
似乎是浏览器在进行实际的AJAX调用之前调用OPTIONS
方法的标准。似乎有点霸道。
因此,为了解决这个问题,我只需在我的反向代理服务器中添加一个catch-all来处理每个OPTIONS
调用。您可以在下面看到代码的问题:
Play! 2.0 easy fix to OPTIONS response for router catch-all?
如果您想详细了解浏览器为何会这样做,请参阅此处:
Why am I getting an OPTIONS request instead of a GET request?
OPTIONS
来自CORS标准。
答案 1 :(得分:0)
在phantomjs中禁用Web安全性也有助于解决此问题(--web-security=no)。因为我没有访问API服务器来对OPTION方法进行更改。