[英]Python CGI and json dumps
我將python用於基於BaseHTTPServer和CGIHTTPServer的簡易Web應用程序。
我對ajax調用有一個小問題,該調用檢索字典以填充選擇的小部件。 被“列出”選擇ID,這是動態填充選項的javascript代碼:
$.getJSON("/web/ajax/list.py", function(result) {
$.each(result, function(key, value){
$("#list").append("<option id=" + key + ">" + value + "</option>");
});
});
在服務器端文件list.py中,我不能簡單地使用json.dumps轉儲字典內容,但是在這樣做之前,我不得不打印一些空行:
options = {}
options[1] = "option 1"
options[2] = "option 2"
options[3] = "option 3"
# Whitout these two lines it doesn't work!!
print """
"""
import json
print json.dumps(options)
有什么想法為什么僅僅通過轉儲字典就行不通?
我想擺脫多余的印刷品。
非常接近...沒有HTTP標頭“ Length”,雖然Content-Length不是嚴格要求的,但是如果您知道的話,可以這樣添加:
print "Status: 200 OK"
print "Content-Type: application/json"
print "Content-Length: %d" % (len(body))
print ""
print body
cgi對應該為服務器打印的內容有一個非常嚴格的想法。 具體來說,您需要提供一組響應頭,響應主體以及兩者之間的空行,以便服務器知道標頭在哪里停止以及主體在哪里開始。
也就是說,新生產線不是多余的; 實際上,您可能應該添加更多:
body = json.dumps(...)
print "Status: 200 OK"
print "Content-Type: application/json"
print "Length:", len(body)
print ""
print body
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.