Javascript 在Python中处理JSON事件
我在谷歌和stackoverflow上搜索过,可以找到一个很好的答案 我的HTML页面上有一段代码,可以获取python的HTML输出(我正在使用jquery): python文件如下所示:Javascript 在Python中处理JSON事件,javascript,jquery,python,Javascript,Jquery,Python,我在谷歌和stackoverflow上搜索过,可以找到一个很好的答案 我的HTML页面上有一段代码,可以获取python的HTML输出(我正在使用jquery): python文件如下所示: baseHTML = "www.google.com" user_agent = "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)" headers = {"User-Agent": user_agent} req = urllib2.Request(baseH
baseHTML = "www.google.com"
user_agent = "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)"
headers = {"User-Agent": user_agent}
req = urllib2.Request(baseHTML, headers=headers)
forumHTML = urllib2.urlopen(req)
page = Soup(forumHTML)
for e in page.findAll('script'):
e.extract()
print 'Content-Type: text/plain\r'
print '\r'
print page
一切正常,我很高兴,但是。。。现在我尝试添加另一个由按钮单击事件发送的JSON:
$('#GetByURL_button').on("click", function(){
$.ajax({
url: "getHTML.py",
type: "POST",
data: JSON.stringify({"newURL": "www.stackoverflow.com"),
dataType: "json",
success: function(response) {
alert(response);
}
});
});
现在我不知道如何用python处理这个事件
因此,我想明确一点,python应该有:
tnx帮助:)您没有指定用于连接Python脚本的框架或机制,并且您的示例根本没有显示处理输入的脚本 因此,假设您使用的是一种机制,它将请求主体作为
stdin
,就像老式的CGI一样。你可以这样做:
content = sys.stdin.read()
data = json.loads(content)
newURL = data.get('newURL')
if newURL == 'dog':
newURL = 'http://www.DogsAreCool.com'
elif not newURL:
newURL = defaultPageURL
response = urllib2.urlopen(newURL)
# ...
您没有指定用于连接Python脚本的框架或机制,并且您的示例根本没有显示处理输入的脚本 因此,假设您使用的是一种机制,它将请求主体作为
stdin
,就像老式的CGI一样。你可以这样做:
content = sys.stdin.read()
data = json.loads(content)
newURL = data.get('newURL')
if newURL == 'dog':
newURL = 'http://www.DogsAreCool.com'
elif not newURL:
newURL = defaultPageURL
response = urllib2.urlopen(newURL)
# ...
两种方法:
- 您的服务器通过正常的http响应(200 OK)返回正确的URL
- 您的ajax代码设置窗口位置
- 您的浏览器很乐意重定向
- 服务器发送带有正确
位置
标题的重定向响应
- 你的
- ajax在DOM中插入内容
- 您的服务器通过正常的http响应(200 OK)返回正确的URL
- 您的ajax代码设置窗口位置
- 您的浏览器很乐意重定向
- 服务器发送带有正确
位置
标题的重定向响应
- 你的
- ajax在DOM中插入内容
代理吗?有没有充分的理由尝试使用相同的url来提供两个不同的响应?我的建议是使用路由:不同的URL提供不同的服务responses@fp-tnx,我现在用的是瓶子,它很棒而且很简单。你在运行什么样的服务器?通过WSGI、CGI或mod_Python运行Python脚本的通用web服务器?一个标准的pythonweb服务器?定制的东西?你看过了吗?你是在尝试使用python编写一个代理吗?有没有充分的理由尝试使用相同的url来提供两个不同的响应?我的建议是使用路由:不同的URL提供不同的服务responses@fp-tnx,我现在用的是瓶子,它很棒,也很简单。@DanielRoseman:是的,当然。但框架最多只能将前两行转换为一行(如果您使用的框架将使用对象调用函数,而不是使用stdin
)运行脚本),因此大多数代码(虽然很简单)都是相同的。@DanielRoseman:是的,当然。但框架最多只能将前两行转换为一行(如果您使用的框架将使用对象调用函数,而不是使用stdin
)运行脚本),因此大多数代码(尽管很简单)都是相同的。