Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在我的Web空间中使用python实现JSONP。。?_Python_Apache_Jsonp - Fatal编程技术网

如何在我的Web空间中使用python实现JSONP。。?

如何在我的Web空间中使用python实现JSONP。。?,python,apache,jsonp,Python,Apache,Jsonp,我刚刚查看了我的Web空间,它的签名是:Apache/2.2.9(Debian)mod_python/3.3.1 python/2.5.2 mod_ssl/2.2.9 OpenSSL/0.9.8g 这给了我希望,Python在某种程度上得到了支持。为什么python被列了两次?mod_python/3.3.1和python/2.5.2 我的Web空间中有一个cgi bin文件夹 我想做的是:我需要做一个跨站点调用,从服务器获取一些文本数据。文本数据不是JSON,但我想我应该将其转换为JSON(或

我刚刚查看了我的Web空间,它的签名是:Apache/2.2.9(Debian)mod_python/3.3.1 python/2.5.2 mod_ssl/2.2.9 OpenSSL/0.9.8g

这给了我希望,Python在某种程度上得到了支持。为什么python被列了两次?mod_python/3.3.1和python/2.5.2

我的Web空间中有一个cgi bin文件夹

我想做的是:我需要做一个跨站点调用,从服务器获取一些文本数据。文本数据不是JSON,但我想我应该将其转换为JSON(或者是否有一个不使用JSON跨站点的选项?)

python脚本获取对一些JSONP的请求。根据请求(我想我应该以某种方式解析URL),python脚本将从Web服务器加载请求的文本数据文件,并将其封装在一些JSON中并返回


有人能告诉我如何在我的Web空间中使用python执行这三个步骤吗?

首先,签名没有两次列出python。它首先列出了Apache web服务器插件的版本,然后列出了系统上python解释器的版本

-这确实是一种编写python服务器代码的低效方法,但事实就是这样。最后,你应该考虑其中一个惊人的Python Web框架。但是,使用cgi模块,您的响应总是从以下内容开始:

print 'Content-Type: application/json\n\n'
python脚本将通过HTTP请求在服务器上运行。在该脚本中,您将检查请求,并通过URL值或查询字符串确定要提供的数据

至少,您可以将返回值包装在一个基本的JSON数据结构中。文本数据本身可以是字符串:

import json
text_data = "FOO"
json_data = json.dumps({'text': text_data})
print json_data
# {"text": "FOO"}
对于JSONP方面,您通常会检查查询字符串,以查看请求是否包含客户端想要的回调函数的特定名称,或者只是默认为“callback”

print "callback(%s);" % json_data
# callback({"text": "FOO"});
返回这将是一个JSONP类型的响应,因为当客户机接收到它时,将为客户机执行回调


最后,让我补充一点,您应该知道python cgi脚本需要为每个请求(甚至是来自同一客户机的重复请求)启动一个全新的python解释器过程。在负载增加的情况下,这很容易使服务器负担过重。因此,人们通常使用wsgi路由(在apache中)。wsgi允许持久性应用程序保持运行,并处理正在进行的请求。

谢谢!也许我应该用PHP来做,因为mod_python效率太低了。使用Python或PHP是否可以允许缓存?每次请求我都会传输相当多的数据。通常我会提供静态文件,但我需要避开SOP问题。我猜我不能允许用户请求,而请求最终会在PHP脚本中结束,该脚本会发回用JSONP包装的文件的内容?我猜这样的东西会允许缓存?!此时,每个请求都会再次传输相同的数据。我真的需要做一些缓存。mod_python与cgi不同。Cgi是最低效的。mod_python更持久(更像mod_php)。缓存将是apache服务器的一项功能。或者至少在脚本中设置一些缓存头,让浏览器在客户端执行。我不知道你在这台服务器上有多少访问权限。