JQuery: я получаю запрос OPTIONS вместо GET

Я использую простой jQuery

$.get( .... );

Здесь вместо того, чтобы получать ответ GET, я получаю OPTIONS (проверено в Firebug Net)

В Safari работает тот же код. Похож на какую-то проблему с Firefox.

Любые способы решения проблемы для решения этой проблемы.

Спасибо

Kurund

Ответы

Ответ 2

Запрос OPTIONS, который вы видите, является предпродажным запросом, вы можете прочитать здесь:

Это там, потому что вы запрашиваете междоменный XMLHttpRequest, поэтому браузер должен проверить, разрешен ли ваш запрос на удаленном сервере или нет.

Существует два решения проблемы (как упоминалось выше):

  • реализовать ответ для запроса OPTIONS с соответствующими заголовками Access-Control-*
  • используйте JSONP вместо простого JSON

Ответ 3

Это, вероятно, связано с ограничениями на Javascript, делающий междоменные XMLHttpRequests. Обычно это запрещено по соображениям безопасности. См. Вопрос, упомянутый выше, или аналогичный вопрос, который я задал.

Чтобы решить эту проблему:

  • Напишите компонент с боковой стороны (используя PHP или любой другой), который будет извлекать удаленный ресурс от имени вашего запроса AJAX или
  • Сделайте вызов JSONP: см. http://www.insideria.com/2009/03/what-in-the-heck-is-jsonp-and.html (или найдите StackOverflow для JSONP):)

Надеюсь, что это поможет!

Ответ 4

У меня была та же проблема, причина, по которой я полагал, была в разделе html <head>, который я установил базовый элемент для этого

<base href="#" onclick="location.href='http://local.develepment.url'; return false;" />

Что я изменил на

<base href="#" onclick="location.href='http://<?php echo $_SERVER['HTTP_HOST']?>/'; return false;" />