Jquery googleappengine中ajaxpost请求后的方法渲染
我正在使用Ajax$.post()将表单内容发布到google app engine中的控制器。表单基本上是使用html5地理定位和用户输入来查找lat/lngJquery googleappengine中ajaxpost请求后的方法渲染,jquery,ajax,google-app-engine,webapp2,Jquery,Ajax,Google App Engine,Webapp2,我正在使用Ajax$.post()将表单内容发布到google app engine中的控制器。表单基本上是使用html5地理定位和用户输入来查找lat/lng <form method="post" id="simple-form" action="/search"> <div> <input type="text" placeholder="Keyword" name="searchQuery" id="
<form method="post" id="simple-form" action="/search">
<div>
<input type="text" placeholder="Keyword" name="searchQuery" id="searchQuery">
<input type="button" id="simple-submit-button">
</div> </form>
使用jquery$.post()将内容发布到方法并呈现另一个页面
function submitform() {
var where = $("#simple-firm").attr("action");
var fi = $("#Latitude").val();
var fj = $("#Longitude").val();
var gk = $("#searchQuery").val();
var what = {Latitude: fi, Longitude: fj, searchQuery: gk};
$.post(where, what, handleResponse, "json");
}
下面是我的router.py
from webapp2 import WSGIApplication
from webapp2 import Route
app = WSGIApplication([
Route('/search', handler='app.serp.Search'),
}
还有我的方法
class Search():
def get(self):
self.redirect('/')
def post(self):
query_name = self.request.get('searchQuery')
lat = float(self.request.get('Latitude'))
lng = float(self.request.get('Longitude'))
print query_name,lat, lng
#self.response.out.write('<html><body>You wrote:<pre>')
self.render('serp/serp.html')
class Search():
def get(自我):
self.redirect(“/”)
def post(自我):
query\u name=self.request.get('searchQuery')
lat=float(self.request.get('Latitude'))
lng=float(self.request.get('Longitude'))
打印查询名称、lat、lng
#self.response.out.write('youwrite:')
self.render('serp/serp.html')
虽然我可以在我的终端中看到正在打印来自的query_name、lat、lng的值,但是self.render和self.response都没有显示。我基本上想呈现另一个名为serp.html的页面。这里出了什么问题。如何修复它 需要了解更多。但是,这里有一些东西可以尝试: 1) 检查日志以查看错误所在 2) 此项目的
/serp/
是否在系统路径中?尝试:
self.render('serp.html')
self.render('/serp.html')
self.render('/serp/serp.html')
3) 使用金甲2号,也许还有烧瓶。这些使渲染模板变得简单。需要了解更多信息。但是,这里有一些东西可以尝试:
1) 检查日志以查看错误所在
2) 此项目的/serp/
是否在系统路径中?尝试:
self.render('serp.html')
self.render('/serp.html')
self.render('/serp/serp.html')
3) 使用金甲2号,也许还有烧瓶。这些使渲染模板变得简单。首先,阅读渲染模板。模板基本上只是html文件,您可以在为页面提供服务之前将自己的变量注入html中(或者您可以按原样提供html)
根据该文档判断,您可能希望执行以下操作:
然而,你的问题对我来说有点奇怪。您正在将html页面返回到AJAX post请求?通常,您可以:
一个普通的HTTP帖子(不是AJAX,是同步的,基本上是一个普通的表单发布)和一个新的网页(你的html)文件
AJAX帖子,jquery/javascript处理响应,响应是XML或JSON,而不是html李>
您正在进行这两种操作的混合,AJAX将接收一个新的html页面,您仍然可以使其工作正常,但这有点奇怪。您可能会发现使用或xml进行响应更容易,并且通过设置post请求的名称,使用jquery/AJAX来处理或xml。您的呼叫。首先,阅读渲染模板。模板基本上只是html文件,您可以在为页面提供服务之前将自己的变量注入html中(或者您可以按原样提供html)
根据该文档判断,您可能希望执行以下操作:
然而,你的问题对我来说有点奇怪。您正在将html页面返回到AJAX post请求?通常,您可以:
一个普通的HTTP帖子(不是AJAX,是同步的,基本上是一个普通的表单发布)和一个新的网页(你的html)文件
AJAX帖子,jquery/javascript处理响应,响应是XML或JSON,而不是html李>
您正在进行这两种操作的混合,AJAX将接收一个新的html页面,您仍然可以使其工作正常,但这有点奇怪。您可能会发现使用或xml进行响应更容易,并且通过设置post请求的名称,使用jquery/AJAX来处理或xml。你的电话
class Search():
def get(self):
self.redirect('/')
def post(self):
query_name = self.request.get('searchQuery')
lat = float(self.request.get('Latitude'))
lng = float(self.request.get('Longitude'))
print query_name,lat, lng
#self.response.out.write('<html><body>You wrote:<pre>')
self.render('serp/serp.html')
import os
import webapp2
from google.appengine.ext.webapp import template
# don't forget to extend webapp2.RequestHandler
class Search(webapp2.RequestHandler):
def get(self):
self.redirect('/')
def post(self):
query_name = self.request.get('searchQuery')
lat = float(self.request.get('Latitude'))
lng = float(self.request.get('Longitude'))
print query_name,lat, lng
template_values = {
'query_name': query_name,
'lat': lat,
'lng': lng
}
path = os.path.join(os.path.dirname(__file__), 'serp/serp.html')
self.response.out.write(template.render(path, template_values))