My backbone.js
приложение, бросающее HTTP OPTIONS, не обнаружило ошибку, когда я пытаюсь сохранить модель в моей успокоительной веб-службе, расположенной на другом хосте/URL-адресе.Ошибка HTTP OPTIONS в Codeigniter от Phil Sturgeon Restserver и Backbone.js
На основе моих исследований, я собрал из этого post, что:
запрос будет постоянно послать заголовок запроса OPTIONS HTTP, а не инициировать запрос POST на всех.
Очевидно, что CORS с запросами, которые будут «вызывать побочные эффекты для пользовательских данных», заставит ваш браузер «предварять» запрос с заголовком запроса OPTIONS, чтобы проверить утверждение, прежде чем фактически отправить ваш предполагаемый метод HTTP-запроса.
я пытался обойти эту проблему:
- Settting emulateHTTP в Backbone к истине.
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
.
Есть ли способ ответить на запрос OPTIONS в CodeSIgniter RESTServer и есть ли другие альтернативы, позволяющие либо отключить этот запрос из места разговора?
Я нашел this on Github как одно решение. Я не уверен, буду ли я использовать его, поскольку он немного устарел.
отлично! благодаря! –
После поиска часов; это было решением.Спасибо :) –
В дополнение к этому мы можем добавить «Access-Control-Allow-Origin», как этот, заголовок («Access-Control-Allow-Origin:». $ _SERVER ['HTTP_ORIGIN']); Так что здесь вы можете проверить, какой доступ к домену принадлежит вашим api. –