2016-07-19 24 views
0

Es gibt eine Möglichkeit, eine $ .ajax Funktion zu bearbeiten, die property "Daten", wenn sie einen Wert erhalten, und entfernen sie, wenn nicht? Ich meine, dynamisch? zB:

Wenn es einen Wert auf die Variable ist:

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

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

Wenn es gibt keine Variable oder kein Wert zu ihr:

var parametro = ""; 

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

Also, meine Idee ist so etwas wie das:

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

ich habe versucht, andere Sachen wie:

data: undefined 
data: "" 
data: null 

Aber nichts scheint zu funktionieren. Die einzige Möglichkeit, eine leere "Daten" -Eigenschaft zu senden, ist es, sie vollständig zu entfernen. Somit gibt es neben der Schaffung von zwei verschiedenen Funktionen, eine mit einer "Daten" -Eigenschaft, und eine andere ohne sie, gibt es irgendeine Lösung?

Vielen Dank für Ihre Aufmerksamkeit.

+0

Wenn Ihre Hauptsprache Portugiesisch ist, wäre es besser, wenn Sie diese posted on [em Portugues Stackoverflow] (http: // pt.stackoverflow.com/). –

+0

Sorry, ich habe versucht, die Frage zu übersetzen. –

+0

überprüfe deine if-Bedingung außerhalb eines Ajax-Aufrufs –

Antwort

0

Soweit ich weiß, ich würde außerhalb von $.ajax die, wenn die Bedingung gestellt empfehlen wie

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

auf diese Weise versuchen,

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

wenn keine Daten dann keine Bedürfnisse Ajax-Aufruf zu tun , Ich denke.

1

Da beide Objekte sind, können Sie das Optionsobjekt mit jQuery.extend() erweitern.

So:

var parametro = { 
     id: "1" 
    }; 

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

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

$.ajax(options); 

-Link:

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