我有一個HTML頁面發送一個CGI請求(通過IIS服務器託管)。未通過JQuery POST請求傳遞的其他數據
這個效果很好。
HTML頁面
<html>
<head>
<script src="js/jquery-1.11.0.js">
</script>
<script src="sample.js"></script>
</head>
<body>
<form id="slam" action= "http://localhost/Dev/SIAS/slam/siscgi.exe" >
<input type="submit" value="Submit" id="B1">
<input type="hidden" name="request" value="sample">
<input type="hidden" name="format" value="xml">
</form>
</body>
</html>
sample.js
$(document).ready(function() {
var siscgi = $("#slam").attr('action');
$("#B1").click(function (evt) {
var data= $("#slam").serialize();
$.post(siscgi,data,
function(data,status){
});
});
});
我試圖刪除隱藏輸入字段,而不是直接將它們作爲在這樣的JavaScript額外的數據:
sample.js
$(document).ready(function() {
var siscgi = $("#slam").attr('action');
$("#B1").click(function (evt) {
var data= {request : "sample", format : "xml"};
$.post(siscgi,data,
function(data,status){
});
});
});
這發生故障,作爲服務器(通過siscgi.exe)發送一個錯誤說缺少的參數 - 請求和格式PARAMS不被髮送。
結果是需要在瀏覽器中顯示的xml樹。
任何人都可以讓我知道,如何解決這個問題?
這對我來說很好。 jQuery應該正確地處理序列化數據。查看瀏覽器的開發人員工具並查看哪些數據是真正發送的。請注意,第二個示例不會發送'submit = B1',這可能是一個問題。 –
@FelixKling我不認爲第一個會發送它 - http://jsfiddle.net/arunpjohny/WE94U/1/ –
當B1的點擊事件被觸發時,發送POST請求。那麼爲什麼我們需要發送提交? – user3377206