的Linux bogon 3.9.5-301.fc19.i686,nginx1.4.2 + web.py0.37 + uwsgi2.01jquery.post()和後端迴應,但回調函數的參數爲空
我編寫一個獲取用戶輸入(一個文本字符串)的html頁面,並將其發佈到後端。後端只需讀取輸入字符串併發送回頁面。
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery("#ExtButton").click(function(){
var postdata = document.getElementById("url_to_get").value;
jQuery.ajax({
type: 'POST',
url: "http://127.0.0.1/TextPickup",
data: postdata,
success: function(data,status){alert("status:"+ status +",data:" +data)},
dataType:'html'
});
});
});
</script>
<input type="text" name="url_to_get" id="url_to_get" style="width:310px">
<button id="ExtButton">send</button>
,並在後端的python腳本:
import web
import os
urls = (
'/','Index',
'/TextPickup','TextPickup',
'/TextAnalysis', 'TextAnalysis'
)
class Index:
...
class TextPickup:
def POST(self):
dest_url = web.data()
return dest_url + ".."
class TextAnalysis:
...
但是當我把東西並點擊按鈕,數據是空的象下面這樣:
我已經檢查了輸出的uWSGI,
[pid: 20807|app: 0|req: 1/1] 127.0.0.1() {50 vars in 800 bytes} [Sun Feb 23 13:44:58 2014] POST /TextPickup => generated 6 bytes in 2 msecs (HTTP/1.1 200) 0 headers in 19 bytes (2 switches on core 0)
甚至wireshark: 很明顯,後端已成功發送響應,包括字符串「測試..」我期望,但爲什麼回調函數沒有得到響應字符串作爲其參數?
UPDATE: 的螢火, 當我右鍵單擊的http://127.0.0.1/TextPickup
和選擇, 包括預期字符串頁「在新標籤中打開」,「測試。」 appeared.however,它是應該是回調函數的參數。
您可以使用瀏覽器開發工具的網絡標籤檢查響應 –
由於您發送純文本,您可以嘗試使用dataType:'text' – palanik
它看起來像您的python腳本以十六進制形式返回它,否則在您的' wireshark'響應區域,它會以字符串形式進行響應。嘗試顯式地將你的'dest_url' var作爲一個字符串轉換(如果這是錯誤的,抱歉,我以前從未使用python,所以這只是一個猜測) – Derek