【发布时间】:2013-03-14 04:25:13
【问题描述】:
我的backbone.js 应用程序在我尝试将模型保存到位于另一个主机/URL 上的 Restful Web 服务时抛出 HTTP OPTIONS not found 错误。
根据我的研究,我从post 收集到:
一个请求会不断发送一个 OPTIONS http 请求头,根本不会触发 POST 请求。
显然,带有“对用户数据造成副作用”的请求的 CORS 将使您的浏览器在实际发送您的预期 HTTP 请求方法之前“预检”带有 OPTIONS 请求标头的请求以检查是否获得批准。
我试图通过以下方式解决这个问题:
- 将 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 请求,还有其他替代方法可以允许从通话位置禁用此请求吗?
我发现this on Github 是一种解决方案。我不确定是否应该使用它,因为它似乎有点过时了。
【问题讨论】:
标签: codeigniter rest backbone.js http-options-method codeigniter-restserver