1
我有這條巨蟒CGI腳本,我站了起來,用下面的命令運行:AJAX傳遞參數給Python腳本
python3 -m http.server --cgi 8000
的python腳本的重要組成部分,是這樣的:
parameter = cgi.FieldStorage()
artiest = parameter.getvalue("artiest")
rijen_aantal = parameter.getvalue("rijen")
kolommen_aantal = parameter.getvalue("kolommen")
現在什麼我想要做的是在我的HTML/JavaScript我想將我從窗體獲得的值傳遞給我的CGI腳本。
在HTML中我寫了下面的形式使用引導:
<form class="form-inline" role="form" method="POST" action="cgi-bin/schuifpuzzel.py">
<div class="form-group">
<label for="artiest">Artiest:</label>
<input type="text" class="form-control margin-right" id="artiest">
</div>
<div class="form-group">
<label for="rij">Rijen:</label>
<input type="number" class="form-control margin-right" id="rij">
</div>
<div class="form-group">
<label for="kolom">Kolommen:</label>
<input type="number" class="form-control margin-right" id="kolom">
</div>
<button type="submit" class="btn btn-default">Submit</button>
而在JavaScript中我已經寫了下面是我在HTML頭正在調用代碼。
$(function() {
var artiest = document.getElementById("myForm").elements[0].value;
var rijen = document.getElementById("myForm").elements[1].value;
var kolommen = document.getElementById("myForm").elements[2].value;
$.ajax({
url: 'cgi-bin/schuifpuzzel.py',
type: 'post',
datatype: "json",
data: JSON.stringify({'artiest': artiest, "rijen": rijen, "kolommen": kolommen}),
success: function(response) {
alert(response);
}
})
});
但這是由於某種原因不起作用。它所做的就是下載.py。
我在這裏做錯了什麼?
UPDATE:
新的問題。我認爲發佈問題有點解決。
但後來我得到以下錯誤:
No 'Access-Control-Allow-Origin' header is present on the requested resource
我已經解決了,通過使用張貼yoshyosh這個 post
我不知道爲什麼,因爲我的腳本的路徑是正確的?
我認爲問題在於你的AJAX調用發送的數據是JSON,而不是表單編碼的鍵值對。您訪問CGI腳本中的值的方式需要將數據作爲表單編碼的鍵值對發送。 – ErikR
那麼我該怎麼做呢?因爲我只是將解決方案複製到類似的問題 – Joey