根据变量状态动态添加参数到 ajax 调用

发布于 2024-12-13 04:53:24 字数 851 浏览 1 评论 0原文

我有一个 ajax 调用,它有一个需要传递给其数据对象的参数列表。但这个列表会根据特定类别而变化。所以我试图找到一种方法来过滤我需要的和我不需要的。

$.ajax({
    url:'......',
    type:'post',
    dataType:'json',
    data: {
        'api': 'myApilist',
        'address' : 'someaddress',
        'callTime' : _this.get('calltime'),
        'id1' : _this.get('id1'),
        'id2' : _this.get('id2'),
        'type' : _this.get('type'),
        'options': _this.get("options"),
        'mode' : _this.get('mode'),
        'time' : _this.get('time')
        'method' : 'POST'
    },

有时,根据我设置的状态,不需要 id1 和 id2 。因此,如果 state="time"id1id2 不需要成为数据列表的一部分。如果 state="id" 则两个 id 都需要在其中。

我试图使用 _underscore 中的过滤器循环来尝试根据我的状态过滤掉这些选项,但它不起作用,因为我没有正确理解它们。我该怎么办呢。

_this.get("options") 指的是 Backbone 模型。

I have an ajax call that has a list of parameters that it needs to pass to its data object. But this list changes based on a certain category. So I'm trying to find a way to filter through the ones I need and the ones I don't need.

$.ajax({
    url:'......',
    type:'post',
    dataType:'json',
    data: {
        'api': 'myApilist',
        'address' : 'someaddress',
        'callTime' : _this.get('calltime'),
        'id1' : _this.get('id1'),
        'id2' : _this.get('id2'),
        'type' : _this.get('type'),
        'options': _this.get("options"),
        'mode' : _this.get('mode'),
        'time' : _this.get('time')
        'method' : 'POST'
    },

Sometimes id1 and id2 are not needed based on a state I have setup. So if the state="time" then the id1 and id2 don not need to be part of the data list. And if the state="id" then both ids need to be in there.

I was trying to use the filter loops in _underscore to try and filter out these options based on my state but it didn't work as I don't understand them correctly. How would I go about this.

_this.get("options") is referring to a Backbone model.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

失眠症患者 2024-12-20 04:53:24

您必须先构建数据字符串,然后再将其传递到 ajax 调用中。这是你可以做的一种方法:

var dynData = new Object();
dynData.api = <value>;
dynData.address = <value>;

目前看起来是静态的。现在,根据您的“状态”,您可以使用以下命令动态向 javascript 对象添加属性:

dynData["newProperty"] = <value>;

现在使用 JSON 和 json2.js,您可以使用以下方法创建 JSON 字符串:

data:JSON.stringify(dynData);     

如果有效,则标记为答案 :)

You have to build your data string before you pass it in the ajax call. This is one way you can do:

var dynData = new Object();
dynData.api = <value>;
dynData.address = <value>;

Looks static as of now. Now based on your 'state', you can add properties to the javascript object on the fly using the following:

dynData["newProperty"] = <value>;

Now using JSON and json2.js, you can create your JSON string using:

data:JSON.stringify(dynData);     

Mark as answer if this worked :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文