Поршень возвращает HTML вместо JSON - PullRequest
1 голос
/ 11 января 2012

Я работаю с Django и Piston и создал следующий обработчик:

from piston.handler import BaseHandler
import datetime
import json

class NotificationHandler( BaseHandler ):
  allowed_methods = ('POST',)

  def create( self, request, token ):
    return json.dumps( datetime.datetime.now() )

При отправке запроса к этому обработчику я получаю HTML-страницу:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <title>something</title>
  <META name="description" content="something"><META name="keywords" content="something">
</head>
<frameset rows="100%,*" border="0">
  <frame src="http://something.com/pay/notify/345345/" frameborder="0" />
  <frame frameborder="0" noresize />
</frameset>
<!-- pageok -->
<!-- 03 -->
<!-- -->
</html>

Похоже, что он превращает вызов в набор фреймов.Однако я ожидаю получить что-то вроде:

"2012-01-11 00:17:24"

Я использую apache с mod_wsgi.При локальном запуске проекта с сервера, предоставленного IDE PyCharm, я получаю ожидаемое значение json.

Не уверен, почему я получаю разные результаты, так как я использую тот же сценарий для выполнения запроса (сте же заголовки).

Что заставит Piston возвращать HTML-страницу вместо необработанной строки json?Это может быть заголовок?

Ответы [ 2 ]

0 голосов
/ 11 января 2012

Рассмотрите возможность использования оболочки приложения WSGI, описанной в:

http://code.google.com/p/modwsgi/wiki/DebuggingTechniques#Tracking_Request_and_Response

для захвата как ввода, так и вывода для запроса.

Это позволит вам проверить,Вызывается Django, а также то, что возвращается в mod_wsgi, и, таким образом, определяет, находится ли проблема в Django относительно того, является ли кэширование Apache или что-то еще, если возникает проблема после того, как приложение возвращает ответ.

0 голосов
/ 11 января 2012

Проверьте конфигурацию Apache и убедитесь, что эта функция вызывается (вызывает исключение, подобное предложению Дэвида Робинсона).

...