首页 > 解决方案 > jQuery ajax 没有将帖子数据传递到 php 页面

问题描述

我尝试使用 alert() 获取发布数据,它的工作问题是数据没有传递给 php 页面结果总是{"success":false,"result":0}

我想要的是将密码发送到 php 页面并使用 password_hash() 对其进行哈希处理并返回结果

$('#spass').on('submit',function(){
  var that=$(this),
  contents=that.serialize();
  alert(contents);
  $.ajax({
    url:'passwordhashing.php',
    dataType:'json',
    data:contents,
    success:function(data){
      alert(JSON.stringify(data));
      console.log(data);
    }

  });

  return false; 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
   <form id="spass" >
    <h4>Change Your Password</h4>
    <input type='password'name="passc" >&nbsp;
    <!--<input type='password' name="cpass" id="cpass">&nbsp;-->
    <input type="submit">
      </form>


**this my php code**
<?php
header('Content-type: text/javascript');

$json=array(
    'success'=>false,
    'result'=>0
);



if(isset($_POST['passc']) && !empty($_POST['passc'])) {
   $pass=password_hash($_POST['passc'],PASSWORD_DEFAULT);
   $json['success']=true;
   $json['result']=$pass;
}
echo json_encode($json);

?>

标签: javascriptphphtmljquery

解决方案


您可以测试您的数据是否实际上没有传递到 PHP 页面。

在 PHP 代码中,执行以下操作:echo $ _POST ['YOUR_VARIABLE']。

检查 INSPECT_ELEMENT / NETWORK 浏览器以确保您确实将数据发送到正确的链接。您的链接可能是相对的,因此您可能将数据发送到错误的链接。

因此,尝试将整个链接放在 ajax url

$ .ajax ({
url: 'HTTP: //WHOLE_LINK_IN_HERE.COM/passwordhashing.php',
});

Ajax 中的 SET 方法:类型:“POST”

$.ajax({ 
  type: "POST", 
  url: url, 
  data: data, 
  success: success, 
  dataType: dataType 
}); 

推荐阅读