2014-02-20 178 views
0

我刚刚在整合ajax http请求并返回一个python web服务器http响应。我真的不知道如何使用它。AJAX HTTP请求和Python网络服务器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() 

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

+0

那么,你看到了什么?你会得到什么错误? –

+0

这不起作用。 :( – Vincent

+0

@DanielRoseman它不工作兄弟 – Vincent

回答

1

我想你不应该在发送所有头文件之前将数据发送到self.wfile。也许你应该发送一个'Content-length'头让页面知道它何时必须停止等待数据。就像这样:

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)