2015-12-08 35 views
0

我正在嘗試編寫一個Javascript程序,它可以獲取我的Python程序的返回值,我正在使用Ajax。 Js和Python之間的連接成功了,但是當我在Javascript中使用alert()函數來顯示我得到的內容時,它表明它始終是整個Python代碼,而不是我想要的返回值。我嘗試了幾種不同的Python程序,返回總是Python程序本身。我需要得到返回值,(在本例中爲{「a」:「15」,「b」:「17」})。通過Javascript獲取來自Python的返回值Ajax

這是在JavaScript中的Ajax部分:

$.ajax({ 
    type: "get", 
    url: "http://localhost:8000/test.py", 
    data: {a:"15",b:"20"}, 
    datatype: "json", 
    success: function(response){ 
     var output = response; 
     alert(output); 
     //var getvalue = output.startdate; 
     //var xxx = parseInt(getvalue); 
    } 
}) 

這裏是Python程序:

import cgi, cgitb 
import json 
import sys 

def TryAgain(): 
    data = cgi.FieldStorage() 
    output = {"a":"15","b":"17"} 
    return output 

這裏是網站運行結果: http://i.stack.imgur.com/HZr34.png

+1

你顯然需要告訴你的web服務器executy Python而不是返回Python腳本內容。當你發佈所有Python的東西時,目前爲止你的web服務器都不知道。因此,不能給出答案。 –

+0

@ClassStacker我看,但如何告訴我的網絡服務器executy Python?也許這個問題太「基本」了。 :) – Markieff

+0

正如我寫的,你的問題不能回答,因爲你只提供了所有不相關的信息。詢問一個正確的標題,標籤和內容,或完全重新工作這一個新的。 –

回答

0

因此,它看起來像這裏的問題是,你實際上並不是服務 python代碼,而是文件w代碼駐留在這裏。您的服務器需要位於代碼和請求之間的另一個層,以使其瞭解如何將請求轉換爲特定的功能以運行。

通常情況下,Python用戶處理這個問題的方式是通過整合其服務器的代碼放到一個Web框架FlaskPyramid

如果您還在使用HTML內容的網絡服務器(假設您是,因爲該文件完全可以訪問),您可能需要另外調查一層,它告訴Web服務器何時發送事情到你的Web框架而不是試圖爲它們自己服務。 This layer is called WSGI,大多數Web框架都會提供具體指南,指導您如何爲特定的技術星座實現WSGI。