我有一个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