abrufen von Daten aus python-Flasche mit ajax jquery

Ich versuche eine html-Seite für die Interaktion mit einem python-Skript gibt einen json-string, mit ajax/jquery. Ich installierte Flasche für die grundlegende Funktionalität der url-routing.

Problem ist, dass mein browser zeigt, dass mein ajax-Skript empfängt ein content-length-5 (das ist die Zeichenfolge "tring" (siehe server.py Funktion showAll ()), aber irgendwie seine auch nicht gespeichert in der Variablen " Ergebnis(siehe Funktion im loader script.js und damit ich nicht die zurückgegebenen Daten.

kann mir jemand sagen, was schief läuft..

meine html-Datei sieht wie

index.html

<!DOCTYPE>
<html>
    <head>
        <title>
            magpie
        </title>
        <script type="text/javascript" src="js/script.js"></script>
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
        <script type="text/javascript">loader();</script>
    </head>
    <body>
        <div id="main"></div>
    </body>
</html>

Wenn ich call load() anstelle von loader() in dieser Datei der Inhalt angezeigt wird.

dem ajax-Skript:

script.js

function loader()
{
    $(document).ready(function(){
        $.get('http://[localhost]:1111/', function(result){
            alert('success');
            $('#main').html(result);
        });
    });
}

function load()
{
    $(document).ready(function () {
        $.getJSON('data.json', function (data) {
            var output = '';
            $.each(data, function(key, val) {
                output += '<h3>' + val.device + '  ' + val.status + '</h3>';
            })
            $('#main').html(output);
        });
    });
}

den beiden python-Skripte sind :

server.py

from bottle import get, post, request, run, response
import devices

@get('/')
def showAll():
    # return devices.data
    return "tring"

@post('/act')
def act():
    deviceId = request.forms.get('deviceId')
    devices.changeState(deviceId)
    return

run(host = "[localhost]", port = 1111)

devices.py

import json

data = json.load(open('data.json', 'r+'))
nos = len(data) # Number of devices

def changeState(id):
    state = data[id]['status']
    if state == 'on':
        data[id]['status'] = 'off'
    else:
        data[id]['status'] = 'on'

    json.dump(data, open('data.json', 'w'))

    return 1

und schließlich meine json-Datei(wenn es kommt):

{"B1": {"device": "fan", "status": "on"}, "B3": {"device": "light", "status": "off"}, "B2": {"device": "fan", "status": "on"}}

Laden http://[localhost]:1111/ im browser angezeigt wird, ist die zurückgegebene Zeichenfolge "tring".Auch das laden der Seite nur in firefox, während andere Browser zeigen einige erlauben-acces-origin-Fehler.

Dies ist ein screenshot von meinem browser :

abrufen von Daten aus python-Flasche mit ajax jquery

InformationsquelleAutor akki | 2014-01-16
Schreibe einen Kommentar