Обработка объекта ответа из Django/JQuery в JavaScript Urllib3

Мне нужно скачать заголовки с BBC и использовать Ajax и JQuery в Django. В настоящее время я пытаюсь использовать Urllib3, чтобы создать запрос на получение данных RSS/XML Top News с сайта BBC, который находится по следующему адресу:

' http://feeds.bbci.co.uk/news/rss.xml '

Я создал запрос, в который верю, но когда возвращенный объект передает его обратно в мой HTML/Javascript, он не работает, и я получаю следующую ошибку.

объект, который я передаю через метод window.onload, это: Upon_success({{ AllNews }}) объект URL

и выдает ошибку "Uncaught SyntaxError: Неожиданный токен &"

Мой HTML и Views.py:

from django.shortcuts import render
import urllib3
import urllib3.request
import json


def index(request):
    http = urllib3.PoolManager()
    r = http.request('GET', 'http://feeds.bbci.co.uk/news/rss.xml')
    xml_news = r.data
    context = {'AllNews': xml_news}
    return render(request, 'home/NewsHome.html', context)
<!DOCTYPE html>
<html>
 <head>
        <meta charset="utf-8">
  <script type="application/javascript">
            function upon_success (xml) {
                alert('ok');
                xml.find('item').each(function(){
                    var title = $(this).find('title').text();
                    msg =+ "<li> " + title +  " </li>"
                        $("#AllNews ul").append(msg)
                }
                )};
            {% if AllNews %}
                window.onload = upon_success({{ AllNews | safe  }});
            {% endif %}
        </script>
 </head>
 <body>
  <h1>Top News: BBC versus CNN</h1>
           <ul id="AllNews"></ul>
 </body>
</html>

я не понимаю, как передать объект ответа обратно в Javascript, чтобы я мог попытаться извлечь заголовки новостей! любая информация или совет будет высоко ценится!

1 ответ

request Метод не возвращает простой текстовый ответ, но объект Python, содержащий ответ, код состояния, заголовки и некоторые другие данные. Его нельзя передать напрямую в JavaScript.

Если вы хотите передать просто текстовый ответ, измените:

    xml_news = r

чтобы:

    xml_news = r.data

Он будет содержать простой XML-ответ от RSS URL. Вы можете анализировать его либо в Python (и передавать в javascript только значащие значения в формате JSON), либо просто передавать его в javascript как есть, обрабатывая его синтаксический анализ на стороне javascript.

Другие вопросы по тегам