如何防止SuperAgent AJAX调用OPTIONS?

时间:2012-06-29 04:29:38

标签: ajax superagent

我在Firefox上找到了SuperAgent(http://visionmedia.github.com/superagent/)的问题来源。不确定SuperAgent是在AJAX调用中执行它还是FireFox正在触发它。

基本上,每次进行AJAX调用时,在实际的AJAX调用之前都会在URL上触发OPTIONS方法。很烦人,因为服务器目前不支持OPTIONS。如何在没有废话和重新编码服务器的情况下拨打电话?

由于

2 个答案:

答案 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方法进行更改。