从服务器获取json而不刷新页面?

时间:2015-03-24 18:59:01

标签: jquery ajax json tornado

我尝试向服务器发出最少的请求,这是通过向客户端发送一个json文件,然后处理这个json文件,

但是,我怎样才能避免刷新页面?我希望在没有刷新页面的情况下收到json

这是我的js / python文件:

$( document ).ready(function() {
    $("#latlon").on("submit", function(){
        $.ajax({
        type: "post",
        url: "/latlon",
        data: ("#latlon").serialize(),
        contentType: "application/x-www-form-urlencoded",
        success: function(responseData) {
            alert(responseData)
        },
        error: function(jqXHR, textStatus, errorThrown) {
            console.log(errorThrown);
        }
        })
    })
    })


class LatLon(MainHandler):
    @tornado.gen.coroutine
    def post(self):
        lat = self.get_argument("lat")
        lon = self.get_argument("lon")
        wwo.request(key=key, q="{},{}".format(lat, lon), format="json", showlocaltime="yes", cc="no", tp=6, extra="isDayTime")
        yield tornado.gen.Task(ioloop.IOLoop.instance().add_timeout, time.time() + 1)
        self.write(json_encode(wwo.result))

我是Ajax的新手,每次执行此程序时,我都不会得到alert。 如何在不刷新页面的情况下发送块?

注意:方法getJSON但它需要一些 Ready json

1 个答案:

答案 0 :(得分:1)

您应该在提交事件中添加e.preventDefault();以防止页面刷新。

$("#latlon").on("submit", function(e){
 e.preventDefault();
 // code here
})