2014-01-31 1 views
2

Я хочу, чтобы потреблять этот отдых веб-сервис, который возвращает ответ JSON:Потребляя Rest веб-службы с бутылкой (JQuery и JSON)

web_service.py

from bottle import route, run 

@route('/example') 
def example(): 
    return {"result_1" : 3, "result_2" : 5} 

run(host='localhost', port=8080) 

Мой файл JavaScript это что-то вроде это:

java_s.js

$(document).ready(function() { 
    $.ajax({ 
     type: "GET" 
     url: "http://localhost:8080/example", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(resp){ 
      $('.result_1').append(resp.result_1) 
      $('.result_2').append(resp.result_2) 
     } 
    }) 
}); 

И мой HTML файл, в котором я хочу cosume веб-службы является:

index.html

<head> 
    <title>example</title> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
    <script src="java_s.js"></script> 
</head> 

<body> 
    <div> 
     <p class="result_1">result 1: </p> 
     <p class="result_2">result 2: </p> 
    </div> 
</body> 

Однако, когда я открываю файл индекса результаты не показаны. Можете ли вы дать мне какое-то предложение исправить эту проблему? Благодаря!

+1

Что такое «http: // localhost: 8080/example» return? –

+0

Он возвращает: {"result_1": 3, "result_2": 5}, и я хотел показать этот результат в html-файле. Я добавил заявление: response.content_type = "application/json" в веб-службе, но он не работает. –

ответ

0

Вы возвращаете объект python dict, а не строку json. Вы можете закодировать строку вручную или использовать, например, библиотеку json для фактического вывода json.

Добавьте import json в начало вашего файла, а затем измените на return json.dumps({"result_1" : 3, "result_2" : 5}), чтобы вернуть фактическую строку json, созданную из объекта python dict.

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

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