2014-10-12 114 views
1

我在Python新手,我使用Python的得到AJAX的請求調用,但我得到的Python代碼,因爲它是AJAX輸出裏面,我不想。在Python訪問阿賈克斯數據

AJAX代碼:

$.ajax({ 
     type: "POST", 
     url: "hello.py", 
     datatype : "json", 
     data: { name: "nitin"} 
     }) 
     .done(function(msg) { 
      console.log(msg); 
      $("div").html("Data : "+msg) 
}); 

Python代碼:

import sys 
import cgi 

sys.stdout.write("Content-Type: application/json") 
sys.stdout.write("\n") 
sys.stdout.write("\n") 

form = cgi.FieldStorage() 

sys.stdout.write(json.dumps({ 'data': form.getvalue('name')})) 

輸出:Data : import sys import cgi sys.stdout.write("Content-Type: application/json") sys.stdout.write("\n") sys.stdout.write("\n") form = cgi.FieldStorage() sys.stdout.write(json.dumps({ 'data': form.getvalue('name')}))

期望輸出應該是:

Data : Content-Type: application/json 

nitin 
+0

你配置了你的web服務器來把python fires當作cgi嗎?你爲什麼首先使用cgi? – 2014-10-12 13:36:02

+0

對不起,先生..我沒有任何想法**配置Web服務器將Python火災視爲cgi **。沒有得到**爲什麼你首先使用cgi?**。 – iNikkz 2014-10-12 13:46:06

+0

我在本地web服務器(apache)的**。htaccess **文件中添加了'Options + ExecCGI AddHandler cgi-script .py'這幾行。添加後,** python腳本現在可執行**,但無法獲得Python AJAX **中的響應。 – iNikkz 2014-10-12 14:41:02

回答

0

添加下面兩行內部的.htaccess文件的/ home/* /的public_html

Options +ExecCGI 
AddHandler cgi-script .py 

Python代碼應該是這樣的:

import sys 
import cgi 
sys.stdout.write("Content-Type: application/x-www-form-urlencoded") 
sys.stdout.write("\n") 
sys.stdout.write("\n") 
form = cgi.FieldStorage() 
name = form.getvalue('name') 
print name 

因爲內容類型是application/X WWW的窗體-urlencoded不應用/ JSON的。我們正在獲取表單值。如果想要看簡單的內容類型print form.headers

1

是您的python腳本標記爲可執行文件嗎?請參閱this -

「Python腳本未標記爲可執行文件,當CGI腳本不可執行時,大多數Web服務器都會讓用戶下載它,而不是運行它並將輸出發送給用戶。正確地在類Unix操作系統上,需要設置+ x位,使用chmod a + x your_script.py可以解決這個問題。「

也有一個樣品來測試,如果你的服務器支持CGI -

https://docs.python.org/2/howto/webservers.html#simple-script-for-testing-cgi

+0

是的。我的python腳本被標記爲可執行文件。在運行之前,我已經完成了chmod + x /path-to-localhost/hello.py。任何其他幫助。 plz – iNikkz 2014-10-12 13:45:19

+0

我在本地web服務器(apache)的**。htaccess **文件中添加了'Options + ExecCGI AddHandler cgi-script .py'這幾行。添加後,** python腳本現在可執行**,但無法獲得Python AJAX **中的響應。 – iNikkz 2014-10-12 14:38:27