我有一个客户端使用AJAX调用将JSON数组发布到Cherrypy服务器。服务器修改数组并将其发送回客户端。我可以看到,在做出2-3次平滑请求后,下一个请求是“等待”#39; (如Chrome中的XHR选项卡所示)。
我不知道它最后一个待处理的请求有什么特别之处。 这是服务器还是客户端问题?
这是服务器端:
@cherrypy.expose
@cherrypy.tools.json_in()
@cherrypy.tools.json_out()
def check_multiple(self):
input_json = cherrypy.request.json
futures = []
[futures.append(pool.submit(checkEntry, entry)) for entry in input_json]
output_json = []
[output_json.append(entry.result()) for entry in as_completed(futures)]
return output_json
客户端:
$.ajax({
type: "POST",
url: address,
data: JSON.stringify(entry_list),
contentType: 'application/json',
dataType: 'json',
success: function(data) {
// work
}
});
编辑:
好的,我已经建立了一个模式。我可以发送到服务器3 POST请求每个请求JSON的位置:
[
{'name':name_1, 'status': status_1},
{'name':name_2, 'status': status_2},
{'name':name_3, 'status': status_3}
]
共9项参赛作品。第四个请求挂起。 或者,我可以发送9个POST请求,其中每个请求JSON是:
[
{'name':name_1, 'status': status_1}
]
共有9个条目,第10个请求挂起。它必须是我发送的JSON和它的长度。
最后3个POST的Cherrypy访问日志:
10.184.67.78 - - [07/Feb/2017:03:55:28] "POST /lab/check_multiple HTTP/1.1" 200 124 "http://server-address.com/lab/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36"
10.184.67.78 - - [07/Feb/2017:03:55:34] "POST /lab/check_multiple HTTP/1.1" 200 124 "http://server-address.com/lab/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36"
10.184.67.78 - - [07/Feb/2017:03:55:40] "POST /lab/check_multiple HTTP/1.1" 200 125 "http://server-address.com/lab/" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36"
答案 0 :(得分:0)
解决。弹出窗口拦截器限制了请求。