gpt4 book ai didi

php - .ajax跨域和mysql函数不能正常运行

转载 作者:行者123 更新时间:2023-11-29 03:44:15 25 4
gpt4 key购买 nike

我对这段代码有疑问。我有一个执行 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');
}
}
});

请求的url代码为:

<?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 条记录。

最佳答案

我怀疑您的所有代码都按照编写的方式完美运行。

您的用户更有可能点击按钮两次,或者由于某些其他原因,您的 javascript 调用被调用了两次。无论哪种方式,您都应该有适当的保护措施,以防止同时提交多个按钮。

您可以通过多种方式做到这一点,例如:

i) 在 javascript 中有一个标记为“requestBeingProcessed”,在执行 ajax 调用之前检查它是否为 false,然后将其设置为 true 直到请求被处理。

ii) 在处理请求时将执行此操作的按钮设置为“显示:无”- 并将该按钮替换为一个旋转的小图标。

iii) 在页面上有一个通过 ajax 调用传入的唯一标识符 - 并且只允许使用该唯一标识符一次来提交该按钮。

我建议在您的 ajax 调用之前放入一个“警报(“调试信息”)”,这样您就可以调查该事件是否总是被触发两次,或者它是否只是用户,然后双击保护在.

干杯丹

关于php - .ajax跨域和mysql函数不能正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8615570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com