返回 AJAX HTTP 请求和 Python Web 服务器 HTTP 响应



我只是集成ajax http请求并返回python webserver http响应的新手。我真的不知道如何使用它。

例如,我的网页在另一个 IP 上。 比如 192.168.1.1,我会得到来自 192.168.1.2 的数据或响应那么在我看来:

function test(){
    $.ajax({
        url : "http://192.168.1.2:8012/",
        type : "GET",
        success : function(data) {
             alert(data);
        }
    });
}

现在在我的 Python Web 服务器上

import string,cgi,time
from os import curdir, sep
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
import MySQLdb
from lxml import etree
from lxml.builder import E as buildE
import urllib
global db, cnn
db = MySQLdb.connect("localhost","root","password","schema" )
cnn = db.cursor()

class MyHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        global cnn, sql
        self.wfile.write("Cannot GET "+self.path)
        print "test"
        self.send_response(200, "testing")
        self.send_header('Content-type', 'xml')
        self.end_headers()
        self.wfile.write("testing")

    def do_POST(self):
        global rootnode
        try:
            ctype, pdict = cgi.parse_header(self.headers.getheader('content-type'))
            if ctype == 'multipart/form-data':
                query=cgi.parse_multipart(self.rfile, pdict)
            self.send_response(301)
            self.end_headers()
            upfilecontent = query.get('upfile')
            print "filecontent", upfilecontent[0]
            self.wfile.write("<HTML>POST OK.<BR><BR>");
            self.wfile.write(upfilecontent[0]);
        except :
            pass

def main():
    try:
        server = HTTPServer(('', 8012), MyHandler)
        print 'started httpserver...'
        server.serve_forever()
    except KeyboardInterrupt:
        print '^C received, shutting down server'
        server.socket.close()
if __name__ == '__main__':
    main()

我只想要从网络服务器返回的数据。但我认为我做错了。

我认为在发送所有标头之前,您不应该将数据发送到self.wfile。也许您应该发送一个"内容长度"标头,让您的页面知道何时必须停止等待数据。像这样:

data="Cannot GET "+self.path
self.send_response(200)
self.send_header('Content-type','text/xml')
self.send_header('Content-length',str(len(data))
self.end_headers()
self.wfile.write(data)

最新更新