正在将POST数据从Web2py检索到本地HTML文件

Retrieving POST data from Web2py to local HTML file

本文关键字:HTML 文件 检索 Web2py POST 数据      更新时间:2023-09-26

我遇到了一些严重的jquery跨域问题,所以我一直试图通过web2py解决这个问题。

我将POST数据从本地HTML文件发送到我的web2py服务器。然后,Web2py对第二台服务器进行python POST(这解决了跨域问题),并获得预期的响应。我应该如何将该响应返回到我的本地html文件?

我曾想过将这些结果存储在数据库中,然后通过url重定向来检索它们——但我不确定我是否能够猜测我需要什么url。也许只是从数据库中获取最后一个条目。

或者有更好的方法吗?

我意识到可能有更好的方法可以直接从原始的本地html文件中做到这一点,并完全绕过web2py,但我在python中比js更得心应手。

所以我试图从:

【本地html文件】->【POST到web2py】->【POST到其他独立服务器】->【返回本地html文件的响应】

我就是想不通最后一条腿。

我的控制器,张贴到第二服务器(这工作):

def index():
    response.headers['content-type'] = 'text/xml'
    xml = request.body.read()  
    query_args = { 'data': xml }
    encoded_args = urllib.urlencode(query_args)
    url = 'myserver.com'
    content = urllib2.urlopen(url, encoded_args).read()
    return response.render(dict(content=XML(content)))

我的本地html文件帖子看起来像(这个帖子是正确的):

<script language="javascript">
function check()
 {
jQuery('.myclass').each(function(){ 
       var txt = $(this).serialize();   
            $.ajax({
    type: 'POST',
    url: 'myserver',
data:  'mydata',
statusCode: {
    302: function() {
        alert("302"); // this is never called
    },
    200: function() {
        alert("200");
    },
},
success: function (data, textstatus) {
    console.log(data);
},
error: function (data) {
},
});
});
 }
</script>

您必须将代码放入"success"处理程序中,该处理程序将web2py的响应写入本地html文档。

类似于:

success: function (data, textstatus) {
   $('#some-element').html(data);
},

当post请求发生时,您也可以让成功处理程序重定向到一个新页面,并以某种方式将XML数据存储在一个会话变量中,然后在新页面上查看它,但我认为只需在javascript中这样做就会大大简化事情。

编辑:我不确定你的数据的性质,所以如果它真的是XML(而不是某种类型的(X)HTML),那么你需要在成功回调中处理数据,而不是将其写入DOM元素。

您需要一个空元素,可能是div:<div id='some-element'></div>来包含响应。

这听起来像你需要的吗?如果我误解了,请告诉我。