DOJO AJAX Запрос с запросом на ВАРИАНТЫ - PullRequest
1 голос
/ 05 ноября 2010

Я представил простой RESTful JSON URL через CherryPy (веб-фреймворк Python).У меня есть второе приложение (использующее Pylons), которое должно найти URL-адрес, предоставляемый CherryPy.Оба обслуживаются через localhost.Оба URL-адреса разрешаются очень хорошо при непосредственном использовании браузера.

Но, когда скрипт DOJO, запущенный из начального запроса Pylons, вызывает JSON-URL из CherryPy, он завершается неудачно.Я открываю LiveHeaders в Firefox и обнаруживаю, что DOJO сначала отправляет HTTP-запрос «OPTIONS».CherryPy отклоняет запрос OPTIONS с помощью метода 405. «Метод не разрешен», и все останавливается.

Если я перетащу эту же страницу в приложение CherryPy, все будет хорошо.

Каков наилучший способразрешить это на моей платформе localhost dev?.... и произойдет ли это в Prod?

Ответы [ 2 ]

2 голосов
/ 24 апреля 2013

На другом сайте я обнаружил, что вам нужно переопределить заголовки xhrArgs, чтобы предотвратить эту проблему. Я цитирую с этого форума:

Похоже, что по умолчанию dojo добавляет аргумент 'X-Requested-With' к свойству Access-Control-Request-Header, который обычно заставляет серверы отклонять запрос, потому что это заставляет межсайтовые запросы XHR принудительно выполнять предварительные запросы ,

Оригинальное решение здесь .

1 голос
/ 07 апреля 2011

Полагаю, вы обслуживаете эти два приложения локально через 2 разных порта, что заставляет dojo попытаться выполнить междоменный вызов XHR.

Чтобы успешно выполнить вызов XHR, вы должны иметь возможность обслуживать URL-адрес JSON с того же URL-адреса (протокол, имя хоста и порт). Я делаю это, используя nginx локально и настраивая его для обслуживания запросов к базе данных из моего приложения Dojo, перенаправляя их в CouchDB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...