【问题标题】:Include and remove $.ajax properties dynamically动态包含和删除 $.ajax 属性
【发布时间】:2016-11-23 00:05:41
【问题描述】:

有什么方法可以编辑 $.ajax 函数,在她收到任何值时包含专有“数据”,并在没有时删除她?我的意思是,动态的?例如:

当变量有值时:

var parametro = "{id: "1"}";

      $.ajax({
            type: "POST",
            url: url,
            data: parametro ,
            async: async,
    ...

当没有变量,或者对她没有价值时:

var parametro = "";

     $.ajax({
            type: "POST",
            url: url,
            async: async,
    ...

所以,我的想法是这样的:

 $.ajax({
            type: "POST",
            url: url,
            if(parametro)
            {
               data: parametro,
            },           
            async: async,
    ...

我尝试了其他方法,例如:

data: undefined
data: ""
data: null 

但似乎没有任何效果。发送空“数据”属性的唯一方法是将其完全删除。因此,除了创建两个不同的功能,一个有“数据”属性,另一个没有她,还有什么解决办法吗?

感谢大家的关注。

【问题讨论】:

  • 如果您的主要语言是葡萄牙语,最好将其发布到StackOverflow em Portugues
  • 对不起,我试图翻译这个问题。
  • 在 ajax 调用之外检查你的 if 条件
  • 您可以只发送一个空数据对象 var parametro = {}; 并始终拥有 data: parametro

标签: jquery ajax parameter-passing optional-parameters


【解决方案1】:

因为都是对象,所以可以使用jQuery.extend()来扩展options对象。

像这样:

var parametro = {
        id: "1"
    };

var defaults = {
        type: "POST",
        url: url,
        async: async,
        ...
    };

var options = $.extend(defaults, parametro);

$.ajax(options);

链接:

https://api.jquery.com/jquery.extend/

【讨论】:

    【解决方案2】:

    试试这个方法,

    if(parametro)
       {
               $.ajax({
                type: "POST",
                url: url,
                data: parametro,           
                async: false,
               });
    }
    

    如果没有数据,我认为不需要进行 ajax 调用。

    【讨论】:

      【解决方案3】:

      据我所知 我建议将 if 条件放在 $.ajax 之外,例如

      if(parametro){
        $.ajax({
              type: "POST",
              url: url,
              data: parametro ,
              async: async,
              ...
              });
      }else{
         $.ajax({
              type: "POST",
              url: url,
              async: async,
        ...
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-29
        • 1970-01-01
        • 2013-01-04
        • 2020-07-08
        • 1970-01-01
        • 2015-07-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多