복붙노트

[JQUERY] 이 세트 비동기 할 수 있습니다 : $ .getJSON 호출에 거짓

JQUERY

이 세트 비동기 할 수 있습니다 : $ .getJSON 호출에 거짓

해결법


  1. 1.이 같은 기적 그것에 $ 아약스 ()를 사용하여 전화를 걸 필요가 :

    이 같은 기적 그것에 $ 아약스 ()를 사용하여 전화를 걸 필요가 :

    $.ajax({
      url: myUrl,
      dataType: 'json',
      async: false,
      data: myData,
      success: function(data) {
        //stuff
        //...
      }
    });
    

    이 같은 $ .getJSON ()를 사용하여 현재 일치합니다 :

    $.getJSON(myUrl, myData, function(data) { 
      //stuff
      //...
    });
    

  2. 2.두 대답은 잘못이다. 당신은 할 수 있습니다. 당신은 호출 할 필요가

    두 대답은 잘못이다. 당신은 할 수 있습니다. 당신은 호출 할 필요가

    $.ajaxSetup({
    async: false
    });
    

    당신의 JSON 아약스 문의하기 전에. (당신이 비동기를 원하는 경우 페이지에 아약스의 다른 용도가있는 경우) 그리고 당신은 호출이 돌아 오면 true로 설정할 수 있습니다


  3. 3.난 당신이 모두 옳다고 생각합니다. 후자의 대답은 잘 작동하지만 당신이 다음을 수행 할 수 있도록 글로벌 옵션을 설정 같은 :

    난 당신이 모두 옳다고 생각합니다. 후자의 대답은 잘 작동하지만 당신이 다음을 수행 할 수 있도록 글로벌 옵션을 설정 같은 :

        $.ajaxSetup({
            async: false
        });
    
        //ajax call here
    
        $.ajaxSetup({
            async: true
        });
    

  4. 4.내 경우에는, 제이 D는 권리입니다. 내가 전화하기 전에 반드시 추가해야합니다.

    내 경우에는, 제이 D는 권리입니다. 내가 전화하기 전에 반드시 추가해야합니다.

    $.ajaxSetup({
        async: false
    });
    

    내 앞의 코드에서, 나는이있다 :

    var jsonData= (function() {
        var result;
        $.ajax({
            type:'GET',
            url:'data.txt',
            dataType:'json',
            async:false,
            success:function(data){
                result = data;
            }
        });
        return result;
    })();
    alert(JSON.stringify(jsonData));
    

    그것은 찾을 작동합니다. 그럼으로 변경

    var jsonData= (function() {
        var result;
        $.getJSON('data.txt', {}, function(data){
          result = data;
        });
        return result;
    })();
    alert(JSON.stringify(jsonData));
    

    경고는 정의되어 있지 않습니다.

    나는 다시 그 세 줄, 알림 쇼 데이터를 추가하는 경우.

    $.ajaxSetup({
        async: false
    });
    var jsonData= (function() {
        var result;
        $.getJSON('data.txt', {}, function(data){
          result = data;
        });
        return result;
    })();
    alert(JSON.stringify(jsonData));
    

  5. 5.그냥 기다리고해야하는 경우 중첩 코드를 피하기 위해 :

    그냥 기다리고해야하는 경우 중첩 코드를 피하기 위해 :

    let json;
    await new Promise(done => $.getJSON('https://***', async function (data) {
        json = data;
        done();
    }));
    

  6. 6.나는 당신이이 옵션을 설정할 수 있습니다 생각하지 않습니다. 당신은 적절한 매개 변수 (기본적으로해서 getJSON은 단지뿐만 아니라, 쉬운 API로 그 호출을 래핑)와 () jQuery.ajax를 사용해야합니다.

    나는 당신이이 옵션을 설정할 수 있습니다 생각하지 않습니다. 당신은 적절한 매개 변수 (기본적으로해서 getJSON은 단지뿐만 아니라, 쉬운 API로 그 호출을 래핑)와 () jQuery.ajax를 사용해야합니다.


  7. 7.자신의 예를 들면, 롤

    자신의 예를 들면, 롤

    function syncJSON(i_url, callback) {
      $.ajax({
        type: "POST",
        async: false,
        url: i_url,
        contentType: "application/json",
        dataType: "json",
        success: function (msg) { callback(msg) },
        error: function (msg) { alert('error : ' + msg.d); }
      });
    }
    
    syncJSON("/pathToYourResouce", function (msg) {
       console.log(msg);
    })
    
  8. from https://stackoverflow.com/questions/2765411/is-it-possible-to-set-asyncfalse-to-getjson-call by cc-by-sa and MIT license