当Python尝试使用发布的数据时,Jquery AJAX请求不再完成

时间:2013-07-18 20:28:06

标签: jquery python ajax post cgi

我正在使用JQuery向Python脚本发出AJAX请求。在完全无法获得成功完成并发送响应的请求之后,我重新开始,看看我是否能够确切地找出造成问题的原因。我的AJAX调用如下所示:

$.ajax({url:'http://localhost/cgi-bin/ajaxtest.py',
    type: 'POST',
    data: {sources:addressList,number:numAddr},
}).done(function(data){
      alert (data);
}).fail(function(){alert("error");}).always(function(data,textStatus,jqXHR){alert(jqXHR.status)});

基本上我正在调用ajaxtest.py脚本,并向其发布addressList,这是一个以\t作为分隔符的字符串,以及numAddr,这是addressList

中的地址数量

现在我用Python脚本开始了。事实上,我没有对我传递的价值做任何事情。我开始的基本脚本看起来像这样:

#!/Users/myname/Python/Python
import telnetlib
import sys
import cgi
import cgitb
from multiprocessing import Pool

cgitb.enable()
print "Content-type: text/html\n"

result_list = []

def counter(x):
    return x*x

def log_result(result):
    result_list.append(result)

if __name__ == '__main__':
    pool=Pool(processes=4)

    for x in range(0, 4):
        pool.apply_async(counter,args = (x,),callback = log_result)
        result_list.append("ho")
    pool.close()
    pool.join()
    print(result_list)

这个脚本实际上并不是为了做任何实际操作,而是为了测试哪些有效,哪些无效,在这种情况下,查看池功能是否导致我以前的问题。事实证明它们不是;当我的javascript调用时脚本完美运行,给出了正确的响应,并且AJAX状态代码使其达到200.

当我尝试使用通过AJAX发布的字符串或整数做某事时,问题出现了。每当我将行data=cgi.FieldStorage()添加到脚本中时,它似乎都会卡住。如果重要,我将其添加到cgitb.enable()下面。当进行AJAX调用时,没有任何反应,然后当我关闭或刷新页面时,.fail方法启动。我不确定为什么会发生这种情况,因为唯一的变化是添加用于保存已发布内容的变量。

有什么东西我不见了吗?我以前成功使用过AJAX,虽然我相信这是我第一次通过JQuery实现它。

0 个答案:

没有答案