[ajax] jQuery : 동기식 AJAX 요청 수행

과거에 일부 jQuery를 수행했지만 완전히 붙어 있습니다. 동기 Ajax 호출 사용의 장단점에 대해 알고 있지만 여기에 필요합니다.

원격 페이지가로드되지만 (파이어 버그로 제어 됨) 리턴이 표시되지 않습니다.

함수가 올바르게 반환되도록하려면 어떻게해야합니까?

function getRemote() {

    var remote;

    $.ajax({
        type: "GET",
        url: remote_url,
        async: false,
        success : function(data) {
            remote = data;
        }
    });

    return remote;

}



답변

동기식 요청을 할 때

function getRemote() {
    return $.ajax({
        type: "GET",
        url: remote_url,
        async: false
    }).responseText;
}

-http : //api.jquery.com/jQuery.ajax/#example-3

참고 : async 속성을 false로 설정하면 더 이상 사용되지 않으며 제거 중입니다 ( link ). 다음을 사용하면 Firefox 및 Chrome을 포함한 많은 브라우저가 이미 콘솔에 경고를 인쇄하기 시작했습니다.

크롬:

기본 스레드의 동기 XMLHttpRequest는 최종 사용자의 경험에 해로운 영향으로 사용되지 않습니다. 도움이 필요하면 https://xhr.spec.whatwg.org/를 확인 하십시오 .

Firefox :

기본 스레드의 동기 XMLHttpRequest는 최종 사용자의 경험에 해로운 영향으로 사용되지 않습니다. 도움이 더 필요하면 http://xhr.spec.whatwg.org/


답변

아약스 기능을 잘못 사용하고 있습니다. 동기식이므로 다음과 같이 인라인으로 데이터를 반환합니다.

var remote = $.ajax({
    type: "GET",
    url: remote_url,
    async: false
}).responseText;


답변

그 URL은 얼마나 원격입니까? 같은 도메인에서 왔습니까? 코드는 괜찮아 보인다

이 시도

$.ajaxSetup({async:false});
$.get(remote_url, function(data) { remote = data; });
// or
remote = $.get(remote_url).responseText;


답변

function getRemote() {
    return $.ajax({
        type: "GET",
        url: remote_url,
        async: false,
        success: function (result) {
            /* if result is a JSon object */
            if (result.valid)
                return true;
            else
                return false;
        }
    });
}


답변