Я не уверен, почему ваш AJAX-код хочет, чтобы сделал GET
на этой login
странице - GET предназначен только для получения информации, а какая информация будет JS-кодом клиентом-сторона хочет получить из формы входа?
В любом случае, при условии, что на есть страницы, которые вы хотите, чтобы AJAX-код мог получать, чтобы получить полезную информацию, я рекомендую строку запроса, такуюкак ?format=json
, чтобы разрешить таким запросам явно запрашивать «только полезную информацию в формате JSON, не оформляйте, пожалуйста».
Мало того, что этот подход позволяет вашему приложению знать, что это автоматический запрос (AJAX илив противном случае, кого это волнует? Дело в том, что нет косметических средств следует отправлять в ответ, просто полезная информация!), но, в частности, запрашиваемый формат - JSON (так что, если вам захочетсяпредоставить XML или что-то в качестве альтернативы, есть очевидный путь роста - ?format=xml
и т. п.)
В этом нет ничего особенно специфичного для Python, а тем более специфического для Pylons - это подходЯ бы порекомендовал любому «смешанному» сайту (способному, по крайней мере, на некоторых страницах отвечать в более чем одном формате, например, HTML с украшениями или JSON, по выбору клиентов), независимо от того, какой язык на стороне сервера он планировал использовать.
Если ваш рендеринг всегда имеет форму, такую как somefunction(sometemplate, somecontext)
, вы можете изменить настройки, чтобы somefunction
также получил решающий бит о запрошенном формате - если запрошенный формат - JSON(или, кто знает, в будущем может быть XML или что-то еще), тогда somefunction
знает, что он может игнорировать шаблон (который в конце концов является или должен иметь чисто представление связанной функциональности, и, следовательно, должен иметь презентация только содержимое) и просто переведите информацию, которая находится в контексте, в JSON или как угодно.