我正在使用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实现它。