当我尝试把模型保存至位于另一个主机/URL上的RESTful Web服务时,我的backbone.js应用程序会抛出一个HTTP OPTIONS未找到错误。根据我的研究,我从这篇文章中得知:post:请求将不断发送 OPTIONS HTTP 请求头,并且根本不会触发 POST 请求。显然,对于将“导致对用户数据产生影响”的CORS请求,浏览器会使用OPTIONS请求头“预检”请求以检查批准情况,然后才实际发送您打算的HTTP请求方法。
我尝试解决此问题的方法是:
我在Github上找到这个项目作为一种解决方案,但它似乎有点过时,我不确定是否应该使用它。
- 将 Backbone 的 emulateHTTP 设置为 true。
Backbone.emulateHTTP = true;
我还在标头中允许了所有CORS和CSRF选项。
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept"); header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
Backbone.emulateHTTP
的代码行时崩溃了。是否有一种方法来响应CodeIgniter RESTServer中的OPTIONS请求?还有其他禁用此请求的替代方案吗?
我在Github上找到这个项目作为一种解决方案,但它似乎有点过时,我不确定是否应该使用它。