将localStorage发送到服务器后,const arrayOrders
即使在客户端包含值,也显示为空。
我已经尝试通过这种方式来做到这一点,但是它不起作用。
这是我来自服务器端和客户端的代码,用于处理请求。
怎么了?
在服务器端:
exports.wip = functions.https.onRequest((req, res) => {
cors(req, res, () => {
const url = `${req.protocol}://${req.get('host')}/work-in-process`;
const tokenId = req.get('Authorization').split('Bearer ')[1];
const arrayOrders = req.headers['service']; // {}
const wipReq = JSON.stringify({
operator: req.body.uid,
conditions: req.body.status,
service_list: {
orders: [arrayOrders]
}
})
return admin.auth().verifyIdToken(tokenId)
.then((decoded) => {res.redirect(302, url.href)})
.catch((err) => res.status(401).send(err));
});
});
在客户端:
$(function() {
'a long time ago user recorded a' localStorage.setItem("service_array", array);
$('.SubForm').on('submit', function(e) {
$.ajax({
type: 'post',
url: 'http://localhost:3000/wip',
data: $(this).serialize(),
success: function(data) {
if (data.status) {
$.ajax({
type: 'get',
url: 'http://localhost:3000/wip',
beforeSend: function(xhr) {
xhr.setRequestHeader('service', localStorage.getItem("service_array"));
},
success: location.href = "http://localhost:3000/wip"
})
}
}
});
e.preventDefault();
});
});
答案 0 :(得分:0)
存储对象是简单的键值存储,类似于对象,但是它们在页面加载时保持完整。 键和值始终是字符串(请注意,与对象一样,整数键将自动转换为字符串)。您可以像访问对象一样使用这些值,也可以使用
Storage.getItem()
和Storage.setItem()
方法。
发件人:https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API
因此,将数组存储在localStorage
中可能会有不同的结果。我建议:
$(function() {
var data = [];
var storeData = JSON.stringify(data);
localStorage.setItem("service_array", storeData);
$('.SubForm').on('submit', function(e) {
$.ajax({
type: 'post',
url: 'http://localhost:3000/wip',
data: $(this).serialize(),
success: function(data) {
if (data.status) {
$.ajax({
type: 'get',
url: 'http://localhost:3000/wip',
beforeSend: function(xhr) {
xhr.setRequestHeader('service', localStorage.getItem("service_array"));
},
success: function(){
location.href = "http://localhost:3000/wip";
}
});
}
}
});
e.preventDefault();
});
});
从您的示例中尚不清楚在何处定义array
。基本上,您可以使用JSON.stringify()
或$.param()
将Array数据转换为可以存储到localStorage的String。根据需要,可以在将String返回到数组中时将其转换。
希望有帮助。