Я пытаюсь использовать зефир для проверки опубликованных данных JSON в моем приложении.Я публикую сообщения с использованием Jquery следующим образом:
var testdata = { "field1": "value1", "field2": "value2" };
$.ajax({
type: "POST",
url: "/api/v1/monitors",
data: JSON.stringify(testdata),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data){alert(data);},
failure: function(errMsg){alert(errMsg);}
});
На стороне сервера у меня есть приложение python в Google App Engine со схемой, подобной:
class TestSchema(Schema):
field1 = fields.Str()
field2 = fields.Str()
, и обработчиком, подобным:
def post(self):
schema = TestSchema()
result = schema.load(self.request.body)
logging.error(result)
В журнале я постоянно получаю:
UnmarshalResult(data={}, errors={u'_schema': [u'Invalid input type.']})
Но если я заменю эту строку:
result = schema.load(self.request.body)
На это:
result = schema.load('{ "field1": u"value1", "field2": u"value2" }')
Работает просто отлично, но я не хочу публиковать юникод, я хочу использовать UTF-8.Как я могу заставить его взять опубликованные данные UTF-8 и загрузить их?