programing

jQuery agax는 IE 디버거가 열려 있을 때만 IE에서 작동합니다.

lastmoon 2023. 9. 4. 20:35
반응형

jQuery agax는 IE 디버거가 열려 있을 때만 IE에서 작동합니다.

IE(11)와 관련하여 이상한 문제에 직면했습니다.간단한 jQuery 코드가 있습니다.

$("#my-radio").click(function () {
     $.ajax({
        url: "/my-url",
    }).error(function(jqXHR, textStatus, errorThrown) {
        $("#error-summary").text(errorThrown);
    });
});

문제는 이 코드가 IE를 제외한 모든 브라우저에서 완벽하게 작동한다는 것입니다(나의 경우 IE 11을 제외하고, 이전 버전에서는 아직 테스트되지 않았습니다). 하지만 문제를 확인하기 위해 자바스크립트 디버거에 내장된 IE를 열면 모든 것이 정상적으로 작동하기 시작합니다.IE가 컨트롤러에 Ajax를 호출하면 컨트롤러의 중단점이 적중됩니다.작업은 아무것도 반환하지 않습니다(유형입니다).void), 그냥 몇 가지를 세고 있습니다. 스레드에 제공된 플러그인 솔루션을 이미 사용해 보았지만 유용하지 않았습니다.

업데이트:

이 문제를 설명하기 위해 간단한 MVC 애플리케이션을 여기에 게시했습니다.이미지를 클릭하면 브라우저는 다음 작업에 대해 Ajax를 요청합니다.

public string Hello()
{
     string ip = Request.ServerVariables["REMOTE_ADDR"];
     string agent = Request.UserAgent;    

     var request = new Request
     {
          IP = ip,
          Time = DateTime.UtcNow,
          UserAgent = agent
     };

     _requestsRepository.Add(request);

     int byIp = _requestsRepository.GetTotalRequestsCountByUser(ip);
     int total = _requestsRepository.TotalRequests;

     string message = string.Format("Hello, {0}. This is your {1}th request and {2}th request in total.", ip, byIp, total);

     return message;
 }

다음 jQuery 코드를 사용합니다.

$(document).ready(function () {
    $("#click-me").click(function () {
        $.ajax({
            url: "/services/hello",
        })

        .success(function (data) {
            alert(data);
        })

        .error(function (jqXHR, textStatus, errorThrown) {
            $("#error-summary").text(errorThrown);
        });
    });
});

보시다시피 액션은 성공 시 경고되는 단순 문자열을 반환합니다.이 페이지는 IE에서 사용할 수 있습니다.실제로 요청이 전송되지는 않지만 여전히 전송되므로 요청의 양이 증가하지 않음을 알 수 있습니다.success이벤트 핸들러가 호출되고 메시지가 경고됩니다. 이 메시지는 요청이 성공한 후 캐시된 오래된 메시지일 수 있습니다.다른 브라우저에서는 이미지를 클릭할 때마다 요청이 전송되므로 요청의 양이 증가합니다.IE 디버거를 켜면 요청도 전송됩니다.저는 이것이 IE 캐시와 관련된 문제라고 제안합니다.

캐시된 응답을 받을 수 있습니다.개발자 도구는 항상 서버에서 새로 고침 옵션을 사용하도록 설정하여 도구 자체를 열 때만 새 응답을 받을 수 있습니다.

추가해 보십시오.cachejQuery AJAX 옵션 개체의 옵션, 값 설정false.

언급URL : https://stackoverflow.com/questions/26973097/jquery-ajax-only-works-in-ie-when-the-ie-debugger-is-open

반응형