我的代码有问题。我有一个执行jQuery函数的页面,获取请求的url中的查询在函数中用于执行2 INSERT
个查询,但我只有一个。
JavaScript代码
$.ajax({
type: "GET",
url: "url on different domain",
crossDomain:true,
cache: false,
success: function(html){
alert(html);
},
error:function (xhr, ajaxOptions, thrownError){
alert(xhr.status);
alert(thrownError);
},
statusCode: {
404: function() {
alert('page not found');
}
}
});
请求的网址代码为:
<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers:X-Requested-With,Host,User-Agent,Accept,Accept-Language,Accept-Encoding,Accept-Charset,Keep-Alive,Connection,Referer,Origin');
header("Access-Control-Allow-Methods: GET");
$db = mysql_connect('localhost','usr','pwd') or die("Database error");
mysql_select_db('db', $db);
$dati_arr=explode("|", $termine);
$dati_insert['email']=$dati_arr[0];
$dati_insert['pwd']=$dati_arr[1];
$dati_insert['nome']=$dati_arr[2];
$dati_insert['cognome']=$dati_arr[3];
$dati_insert['tipo']=$dati_arr[4];
$query="INSERT INTO ".$table." VALUES ('','".implode("','", $values)."')";
if(mysql_query($query)){$exec="ok";}
?>
但在我的数据库中,我有2条记录。
答案 0 :(得分:0)
我怀疑你的所有代码都是写的。
您的用户更有可能两次点击该按钮,或者出于其他原因,您的javascript调用被调用两次。无论哪种方式,您都应该有适当的保护措施,以防止一次性提交多个按钮。
您可以通过多种方式执行此操作,例如:
i)在'requestBeingProcessed'的javascript中有一个标志,在进行ajax调用之前检查它是否为false,然后将其设置为true直到处理请求。
ii)在处理请求时将执行此操作的按钮设置为“display:none” - 并用稍微旋转的图标替换按钮。
iii)在页面上有一个唯一的标识符,该标识符通过ajax调用传入 - 并且只允许使用该唯一标识符一次来提交该按钮。
我建议在你的ajax调用之前输入'alert(“调试信息”)',这样你就可以调查事件是否总是被触发两次,或者它是否只是用户,然后进行双击保护。
欢呼声 丹