我有一个奇怪的问题(我搜索过但没有成功)。我正在使用Ajax将表单发布到PHP脚本。这适用于Chrome,Opera和Safari。但是,在IE和Firefox中,表单都会正确发送到脚本,但缺少表单数据。当POST数据丢失时,我确保脚本返回错误。我试图在几个小时内搜索这个问题,但没有任何运气。你是我最后的希望。
这是AJAX代码(带有一些Javascript):
<script type="text/javascript">
$(document).ready(function() {
$("#latestNewsForm").on('submit', function(event) {
event.preventDefault();
$.ajax({
url : "http://devserver/site/php/getLatestArticles.php",
type : "POST",
data : new FormData(this),
contentType : false,
cache : false,
processData : false
}).done(function (data) {
$("#formResponse").html(data);
});
});
});
</script>
以下是表格:
<form id="latestNewsForm" method="post">
<input type="submit" name="currentPage" id="firstPage" value="1">
</form>
提前感谢!
答案 0 :(得分:0)
Ohgodwhy的评论可能是正确的。
将您的数据放在ajax调用之外的变量中。 this
可能指的是与您在不同浏览器中预期的不同。
试试这个:
$("#latestNewsForm").on('submit', function(event) {
event.preventDefault();
var data = new FormData(this);
$.ajax({
url : "http://devserver/site/php/getLatestArticles.php",
type : "POST",
data : data,
contentType : false,
cache : false,
processData : false
}).done(function (data) {
$("#formResponse").html(data);
});
});
另一种可能性可能与您的提交按钮有关:Submit rollover button not working in FF and IE
答案 1 :(得分:-1)
试试这个:
$.ajax({
type: "POST",
url: "/fetchdata",
data:JSON.stringify(sid),
success: function(result) {
alert('ok');
},
error: function(result) {
alert('error');
}
});