第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果我的 ajax 請求只在調用時執(zhí)行,為什么會執(zhí)行兩次?

如果我的 ajax 請求只在調用時執(zhí)行,為什么會執(zhí)行兩次?

PHP
郎朗坤 2023-09-08 10:21:52
我對 php 中的腳本有一個 ajax 請求,在這個腳本中,我對過去的值進行了多次檢查,然后在調用 DAO 方法將信息保存在數(shù)據庫中之后,到目前為止一切正常,問題是當驗證失敗我使用 echo json_enconde ($error) 返回錯誤并使用 exit()。會出現(xiàn)什么問題?好吧,即使退出也會發(fā)生一些奇怪的行為,是的,返回 $error ,但即使有此返回,成功函數(shù)也會被觸發(fā)兩次,一個將其返回給我,另一個繼續(xù)調用腳本并將信息保存在數(shù)據庫。阿賈克斯$.ajax({    method: "POST",    url: "ajax/compra-acao.php",    data: {usuario_id: usuario, cod: c, qtd: quantidade, acao: acao1},    dataType: 'JSON',    success: function(response){            console.log(response)            document.getElementById('btnComprar').disabled = false            return 0;        }    },    error: function(response, status, error){        alert(response.responseText);    }})PHP腳本    <?phpif(!isset($_POST['usuario_id']) || !isset($_POST['cod']) || !isset($_POST['qtd']) || !isset($_POST['acao'])){    echo json_encode($retorno['erro'] = 'Houve um erro ao processar sua solicita??o. POST');    exit();}include_once('../PDO/acaoDAO.php');include_once('../PDO/usuarioDAO.php');$usuario = new UserBD();$acao = new Acao();$retorno = [];$usuario = $usuario->getUserById($_POST['usuario_id']);if(!$usuario){    $retorno['erro'] = 'Houve um erro ao processar sua solicita??o';    echo json_encode($retorno);    exit();}if(!password_verify($usuario[0]['cpf'], $_POST['cod'])){    $retorno['erro'] = 'Hoje n?o, espertinho';    echo json_encode($retorno);    exit();}if($_POST['qtd'] < 1){    $retorno['erro'] = 'Quantidade inválida';    echo json_encode($retorno);    exit();}$precoAcao = $acao->getPrecoAcaoById($_POST['acao']);if(!$precoAcao){    $retorno['erro'] = 'A??o inválida';    echo json_encode($retorno);    exit();}$saldo = $acao->getSaldoDinheiroById($_POST['usuario_id']);if($saldo < (double) $precoAcao * (int) $_POST['qtd']){    $retorno['erro'] = 'Saldo insuficiente';    echo json_encode($retorno);    exit();}
查看完整描述

2 回答

?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

經過更好的調試后,我找到了問題的原因,這確實是由于 Google Chrome 造成的。代碼沒問題。

我想強制向服務器發(fā)送錯誤的數(shù)據,并且我正在使用檢查 chrome 元素并手動放置任何值的功能來做到這一點,當以這種方式更改值時,Chrome 最終會“堆疊”或“添加”再次調用AJAX的功能,如果我多次改變這種方式,它會堆疊越來越多的調用,我不知道這是否應該是正確的行為

帶有調用的 HTML:

<button id="btnVender" onclick="venderAcao(210,'5mbZz5LpULCs9oKT3BHbzUiW',3)" class="btn btn-vender mt-xl-0 mt-lg-3 mt-0">Vender</button>

如果我更改 onclick 函數(shù)的任何這些值,就好像我在 onclick 中調用了兩個函數(shù):原始函數(shù)和修改后的函數(shù)

感謝大家的幫助


查看完整回答
反對 回復 2023-09-08
?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

您可以嘗試使用exit;不帶 '()' 或return false;orreturn; 并將其放在退出之前


http_response_code(500);

echo json_encode('ERROR');

exit;


查看完整回答
反對 回復 2023-09-08
  • 2 回答
  • 0 關注
  • 314 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號