Используйте "\n"
:
document.write("\n");
Обратите внимание: он должен быть окружен двойными кавычками, чтобы интерпретировать его как новую строку. Нет, это не так.
Если вы отправляете JSON в Django, я думаю, вам нужен request.body
( request.raw_post_data
в Django <1.4). Это даст вам необработанные данные JSON, отправленные по почте. Оттуда вы можете обрабатывать его дальше.
Вот пример использования JavaScript, jQuery , jquery-json и Django.
JavaScript:
var myEvent = {id: calEvent.id, start: calEvent.start, end: calEvent.end,
allDay: calEvent.allDay };
$.ajax({
url: '/event/save-json/',
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: $.toJSON(myEvent),
dataType: 'text',
success: function(result) {
alert(result.Result);
}
});
Django:
def save_events_json(request):
if request.is_ajax():
if request.method == 'POST':
print 'Raw Data: "%s"' % request.body
return HttpResponse("OK")
Django <1.4:
def save_events_json(request):
if request.is_ajax():
if request.method == 'POST':
print 'Raw Data: "%s"' % request.raw_post_data
return HttpResponse("OK")
request.POST is just a dictionary-like object, so just index into it with dict syntax.
Assuming your form field is fred, you could do something like this:
if 'fred' in request.POST:
mydata = request.POST['fred']
Alternately, use a form object to deal with the POST data.
Полезные данные HTTP POST - это просто набор байтов. Django (как и большинство фреймворков) декодирует его в словарь либо из параметров в кодировке URL, либо из многостраничной кодировки MIME. Если вы просто выгружаете данные JSON в содержимое POST, Django не декодирует их. Либо сделайте декодирование JSON из полного содержимого POST (не из словаря); или поместите данные JSON в составную оболочку MIME.
Короче говоря, покажите код JavaScript. Кажется, проблема здесь.
У меня была такая же проблема. Я отправлял сложный ответ JSON, и я не мог прочитать свои данные с помощью словаря request.POST.
Мои данные JSON POST:
//JavaScript code:
//Requires json2.js and jQuery.
var response = {data:[{"a":1, "b":2},{"a":2, "b":2}]}
json_response = JSON.stringify(response); // proper serialization method, read
// http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/
$.post('url',json_response);
В этом случае вам нужно использовать метод, предоставленный aurealus. Прочтите request.body и десериализуйте его с помощью json stdlib.
#Django code:
import json
def save_data(request):
if request.method == 'POST':
json_data = json.loads(request.body) # request.raw_post_data w/ Django < 1.4
try:
data = json_data['data']
except KeyError:
HttpResponseServerError("Malformed data!")
HttpResponse("Got json data")