2017-02-19 35 views
1

Мне нужно загрузить заголовки из BBC и использовать Ajax и jquery в Django. Им в настоящее время пытаются использовать Urllib3, чтобы создать запрос, чтобы получить RSS/XML данные Топ новостей с сайта BBC обнаружил на следующее:Обработка объекта ответа с Django/JQuery на javascript Urllib3

«http://feeds.bbci.co.uk/news/rss.xml»

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

объект я прохожу через метод window.onload является: upon_success ({{AllNews}}) url object

и дает мне ошибку '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> 
 
\t <head> 
 
     <meta charset="utf-8"> 
 
\t \t <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> 
 
\t </head> 
 
\t <body> 
 
\t \t <h1>Top News: BBC versus CNN</h1> 
 
      <ul id="AllNews"></ul> 
 
\t </body> 
 
</html>

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

ответ

1

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

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

xml_news = r 

к:

xml_news = r.data 

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

+0

Благодарим вас за отзыв, я добавил, что к моему коду из данных XML я хочу извлечь данные между тегами заголовков (которые хранятся в тегах элементов для каждой истории). у вас есть идея, как я могу это сделать? – ProgramERR

+0

, но все же, когда я передаю его обратно в Javscript, он появляется, я получаю сообщение об ошибке «Uncaught SyntaxError: Unexpected token &» – ProgramERR

 Смежные вопросы

  • Нет связанных вопросов^_^