我正在尝试编写一个jQuery.post请求,该请求的内容以JS变量的形式而不是硬编码的形式出现。
在系统中工作之前的示例
function builder() {
jQuery.post('/cart/add.js', {
items: [
{
quantity: 1,
id: 100
}
,{
quantity: 1,
id: 200
}
]
});
}
document.getElementById('someLink').href = "/cart";
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a id="someLink" onclick="builder()"><input type="submit"
value="Click me" /></a>
我想做的是将项目的全部内容以及方括号内的所有内容都放在JS变量中,以便以后再调用。
关于我要如何完成工作的一个无效示例看起来像这样:
function builder() {
var cartContents = "items: [{ quantity: 1, id: 100 } , { quantity: 1, id: 200 } ]";
jQuery.post('/cart/add.js', {
cartContents;
});
}
document.getElementById('someLink').href = "/cart";
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a id="someLink" onclick="builder()"><input type="submit"
value="Click me" /></a>
答案 0 :(得分:0)
问题是您要将cartContents分配为字符串变量。取而代之的只是使其成为一个普通对象,它将起作用。参见以下工作示例:
function builder() {
var cartContents = {
items: [
{ quantity: 1, id: 100 } ,
{ quantity: 1, id: 200 }
]
};
jQuery.post('/cart/add.js', cartContents);
}