我无法通过 AJAX 将会话存储数据发送到服务器
I am not able to send session storage data through AJAX to the server
我已将用户 ID 存储在会话存储中。我需要使用 ID 执行操作,因此我使用 AJAX 将其传递给服务器,但数据未到达服务器。
AJAX:-
$(document).ready(function(){
$('#coupon_code').hide();
$('#coupon_status').hide();
var id = sessionStorage.getItem('user_id');
$('#generate').click(function(){
$.ajax({
type : "POST",
dataType : 'json',
url : 'http://127.0.0.1/ionic/generate.php',
data : id,
beforeSend : function(){
console.log(sessionStorage.getItem('user_id'));
console.log("data sent");
},
success : function(data){
console.log(data);
console.log(data.code);
console.log(data.value);
}
});
});
});
PHP 脚本:-
<?php
require 'db_connect.php';
header('Access-Control-Allow-Origin: *');
$id = $_POST['id'];
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$string = '';
for ($i = 0; $i < 5; $i++) {
$string .= $characters[mt_rand(0, strlen($characters) - 1)];
}
$ins = "INSERT INTO `coupon_code` (id,code,status) VALUES ('$id,'$string',1)";
$res_ins = mysqli_query($con,$ins);
if($res_ins)
{
echo json_encode(array("status" => "done", "code" => $string,"value" => "1"));
//echo $string;
}
else
{
echo "NO";
}
?>
编辑:-
Firebug 结果
您仅在 json 数据中发送值 - 您需要发送键值对 - 因此通过键您将在服务器
获取数据
这应该对您有用 - 您也可以在 firebug 中调试数据 哪些内容将发送至服务器
您需要更换
这一行data : id,
用这条线data : {'id' : id},
$(document).ready(function(){
$('#coupon_code').hide();
$('#coupon_status').hide();
var id = sessionStorage.getItem('user_id');
$('#generate').click(function(){
$.ajax({
type : "POST",
dataType : 'json',
url : 'http://127.0.0.1/ionic/generate.php',
data : {'id' : id},
beforeSend : function(){
console.log(sessionStorage.getItem('user_id'));
console.log("data sent");
},
success : function(data){
console.log(data);
console.log(data.code);
console.log(data.value);
}
});
});
});
插入查询也有一个错误 -
$ins = "INSERT INTO `coupon_code` (id,code,status) VALUES ('$id,'$string',1)";
(')'$id
的单引号未闭合
$ins = "INSERT INTO `coupon_code` (id,code,status) VALUES ('$id','$string',1)";
我已将用户 ID 存储在会话存储中。我需要使用 ID 执行操作,因此我使用 AJAX 将其传递给服务器,但数据未到达服务器。
AJAX:-
$(document).ready(function(){
$('#coupon_code').hide();
$('#coupon_status').hide();
var id = sessionStorage.getItem('user_id');
$('#generate').click(function(){
$.ajax({
type : "POST",
dataType : 'json',
url : 'http://127.0.0.1/ionic/generate.php',
data : id,
beforeSend : function(){
console.log(sessionStorage.getItem('user_id'));
console.log("data sent");
},
success : function(data){
console.log(data);
console.log(data.code);
console.log(data.value);
}
});
});
});
PHP 脚本:-
<?php
require 'db_connect.php';
header('Access-Control-Allow-Origin: *');
$id = $_POST['id'];
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$string = '';
for ($i = 0; $i < 5; $i++) {
$string .= $characters[mt_rand(0, strlen($characters) - 1)];
}
$ins = "INSERT INTO `coupon_code` (id,code,status) VALUES ('$id,'$string',1)";
$res_ins = mysqli_query($con,$ins);
if($res_ins)
{
echo json_encode(array("status" => "done", "code" => $string,"value" => "1"));
//echo $string;
}
else
{
echo "NO";
}
?>
编辑:-
Firebug 结果
您仅在 json 数据中发送值 - 您需要发送键值对 - 因此通过键您将在服务器
获取数据这应该对您有用 - 您也可以在 firebug 中调试数据 哪些内容将发送至服务器
您需要更换
这一行data : id,
用这条线data : {'id' : id},
$(document).ready(function(){
$('#coupon_code').hide();
$('#coupon_status').hide();
var id = sessionStorage.getItem('user_id');
$('#generate').click(function(){
$.ajax({
type : "POST",
dataType : 'json',
url : 'http://127.0.0.1/ionic/generate.php',
data : {'id' : id},
beforeSend : function(){
console.log(sessionStorage.getItem('user_id'));
console.log("data sent");
},
success : function(data){
console.log(data);
console.log(data.code);
console.log(data.value);
}
});
});
});
插入查询也有一个错误 -
$ins = "INSERT INTO `coupon_code` (id,code,status) VALUES ('$id,'$string',1)";
(')'$id
的单引号未闭合$ins = "INSERT INTO `coupon_code` (id,code,status) VALUES ('$id','$string',1)";