Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I failed to write a condition inside of ajax by using the following syntax.

      var num = 1;
      $.ajax({
          type: "POST",
      //condition starts
        if (num === 1){
          url: url1,
          data: data1,
        }else{
          url: url2,
          data: data2,
        }
        //condition finishes
          success: success,
          dataType: dataType
        });

but this way works.

 var num = 1;
if(num === 1){
    $.ajax({
  type: "POST",
  url: url1,
  data: data1,
  success: success,
  dataType: dataType
});
}else{
    $.ajax({
  type: "POST",
  url: url2,
  data: data2,
  success: success,
  dataType: dataType
});
}

the 2nd method is not quite ideal as repeating my code. is my first script in a wrong syntax? Could someone please point out? thanks

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
162 views
Welcome To Ask or Share your Answers For Others

1 Answer

is my first script in a wrong syntax?

Yes, absolutely. You were just inserting if-else-statement parts in the middle of an object literal. You should use something like this:

var params = {
    type: "POST",
    success: success,
    dataType: dataType
};
if (num == 1) {
    params.url = url1;
    params.data = data1;
} else {
    params.url = url2;
    params.data = data2;
}
$.ajax(params);

Or if you want to inline them, you can use the ternary operator:

$.ajax({
    type: "POST",
    url: (num == 1) ? url1 : url2,
    data: (num == 1) ? data1 : data2,
    success: success,
    dataType: dataType
});

(If you don't want to repeat the condition, store its boolean result in a variable)


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share

548k questions

547k answers

4 comments

86.3k users

...