[英]Python and AJAX - HTTP Response
我正在嘗試用python腳本回答ajax請求。 ajax-request發送一個json-object,如下所示:
$.ajax({
url : "cgi-bin/mycgi.py",
type : "POST",
data : JSON.stringify(MyJSONObject),
success : function() {...do something},
error : function(xhr,errmsg,err) {
alert(xhr.status);
}
}
我的Python腳本mycgi.py具有以下幾行:
import sys
import simplejson as json
...
myjson = json.loads(sys.stdin.read())
#do something with the object
mystatus = "200 OK"
sys.stdout.write("Status: %s\n" % mystatus)
sys.stdout.write("Content-Type: application/json")
sys.stdout.write("\n\n")
sys.stdout.write(json.dumps(myjson))
基本上,一切正常。 我的瀏覽器獲取響應,並識別-如果狀態設置為“ 200 OK”-請求成功,並在成功部分中使用返回的對象運行命令。
但是我有兩個問題:
非常感謝!
第一個問題:
與將狀態代碼設置為200的響應類似,您可以在返回其他狀態代碼時向響應添加內容。 根據狀態碼,您應該在內容中添加詳細信息和/或添加其他標題,以防您遵循標准的http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html 。
在JavaScript中,您可以為來自ajax調用的響應的特定狀態代碼或處理過程中的所有錯誤設置處理程序。 有關詳細信息,請參見http://api.jquery.com/jQuery.ajax/ 。 在這些處理程序中,您可以訪問響應內容並顯示消息:
$.ajax({
url : "cgi-bin/mycgi.py",
type : "POST",
data : JSON.stringify(MyJSONObject),
success : function() {...do something},
error : function(xhr,errmsg,err) {
// show status code and response content
alert(xhr.status + ": " + xhr.responseText);
}
}
如果您想返回HTML並顯示它,只需將響應轉換為jQuery對象。
var response = $(xhr.responseText);
關於第二個問題:
我個人更喜歡使用現有工具,而不是自己一個人處理應用程序的低級部分。 當使用隱藏不必要的復雜性和樣板的庫時,我認為有很多好處。 只是一個簡短的清單,事情在我的頭上:
因此,在您的情況下,我什至會更進一步,並介紹一個苗條的Python Web應用程序框架。 但這當然取決於您的應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.