CherryPy Возвращает статус 301 для nsIXMLHttpRequest (но отлично работает для HTTP-запроса Firefox) - PullRequest
1 голос
/ 30 сентября 2011

Я занимаюсь разработкой веб-API с использованием CherryPy.Намерение состоит в том, чтобы получить доступ к JavaScript через nslXMLHttpRequest.Когда я получаю доступ к API через Firefox (как будто это обычный URL-адрес), в моих журналах появляется следующее:

!!!SUCCESS!!!
[my IP] - - [30/Sep/2011:08:30:19] "GET /myAPI/ HTTP/1.1" 200 11 "" "Mozilla/5.0 (Windows NT 6.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2"

Это "!!! УСПЕХ !!!"печатается в начале кода, который выполняется на странице myAPI.Но когда я получаю к нему доступ через JavaScript, в моих журналах появляется следующее сообщение:

[my IP] - - [30/Sep/2011:08:32:19] "GET /myAPI?arg1=value1&arg2=value2 HTTP/1.1" 301 221 "[requesting page]" "Mozilla/5.0 (Windows NT 6.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2"

(эти аргументы необязательны)

Обратите внимание, что во втором случае !!!никогда не печатался (мой код никогда не выполнялся), а код состояния был 301 - «перемещен навсегда».Любая идея, что заставило бы CherryPy сделать это?

1 Ответ

3 голосов
/ 30 сентября 2011

Возможно, потому что /myAPI и /myAPI/ - это не один и тот же URI, поэтому он перенаправляет вас с одного на другой.Вы можете настроить это поведение с помощью http://docs.cherrypy.org/dev/refman/lib/cptools.html#cherrypy.lib.cptools.trailing_slash

...