#javascript #python #json #ajax #xmlhttprequest
Вопрос:
Я пытаюсь создать файл JSON из переменной «запрос» в моем коде python и извлечь его в javascript с помощью XMLHttpRequest. Мой код python правильно выводит «запрос» в командную строку, однако, консоль.вывод журнала запроса XMLHttpRequest является «неопределенным». если я использую «console.log(xmlhttp.responseText);» в части кода javascript ниже, консоль выводит все содержимое моего html-файла. Кто-нибудь знает, как получить эту информацию из «запроса» в мой javascript в виде JSON?
import json import sys import cgi class MapDetailView(generic.DetailView): model = Map request = json.loads('{"name": "woods", "size": 1000}') def output(content): sys.stdout.write('Content-Type: application/json') sys.stdout.write(content) form = cgi.FieldStorage() fail=0 try: myData = json.dumps(request) except: fail=1 else: if myData == "": fail=1 if fail == 1: output('Who are you?') output(myData)
фрагмент кода java-скрипта
function callAjax(url) { var xmlhttp; xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 amp;amp; xmlhttp.status == 200) { console.log(xmlhttp.responseJSON); } } xmlhttp.open("GET", url, true); xmlhttp.send(); } callAjax('http://127.0.0.1:8000/catalog/map/1');
ИЗМЕНИТЬ: сделал предложения Бармара, но все еще ведет себя так же
Комментарии:
1.
str(request)
это не JSON. Воспользуйсяjson.dumps(request)
2. Это должно быть
Content-Type: application/json
3.
xmlhttp.response.json
должно бытьxmlhttp.responseJSON