ajax发布到App Engine无法正常工作

时间:2012-10-10 22:53:14

标签: jquery python ajax google-app-engine

所以我有这个html / js试图测试一个ajax帖子

<html>

<head>
    <script src="js/jquery-1.8.2.min.js"></script>
    <script src="../js/bootstrap.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function() { 
            document.write("booo");
            var data = {"lat":5};
            $.ajax({
                    type: "POST",
                    url: "/geo",
                    data: data,
                });
            });
            var data = {"lat":5};
            $.ajax({
                    type: "POST",
                    url: "/geo",
                    data: data,
                });
    </script>
</head>

<body>
    <form method="post">
        <input name="lat" type="text">
        <input name="lon" type="text">
        <input type="submit">
    </form>
</body>
</html>

现在我只是试图发布数据,在python中将其取出并将其写回/存储在db中但是我的ajax post函数没有发生任何事情。这是我的python,

class GeoHandler(Handler):

    def get(self):
        self.render("geo.html")

    def post(self):
        lat = self.request.get("lat")
        lon = self.request.get("lon")
        self.write(lat)
        loc = models.LocModel(coords = db.GeoPt(lat,lon), hm = str(lat).join(str(lon)))
        loc.put()

我的网址处理程序是

    ('/geo', GeoHandler),   

最终我正在尝试使用javascript来捕获我的用户的位置数据并将其映射...但app engine / webapp2只喜欢抓住客户端的ipv6并且无法获取ipv5的位置数据但是地理数据有html5 / js solns ..但我甚至无法将基本数据发布到服务器

1 个答案:

答案 0 :(得分:1)

您未在数据中加入"lon"。像这样:

 var data = {"lat": 5, "lon": 6}

您可能还需要查看Request Headers,更具体地说,请查看X-AppEngine-CityLatLong。这是一个城市级别,当然这取决于您的应用程序。