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 캐시와 관련된 문제라고 제안합니다.
캐시된 응답을 받을 수 있습니다.개발자 도구는 항상 서버에서 새로 고침 옵션을 사용하도록 설정하여 도구 자체를 열 때만 새 응답을 받을 수 있습니다.
추가해 보십시오.cache
jQuery AJAX 옵션 개체의 옵션, 값 설정false
.
언급URL : https://stackoverflow.com/questions/26973097/jquery-ajax-only-works-in-ie-when-the-ie-debugger-is-open
'programing' 카테고리의 다른 글
a를 개발하거나 배포하려면 수수료를 내야 합니까?NET 어플리케이션? (0) | 2023.09.04 |
---|---|
com.myql.jdbc.exceptions.jdbc4가 있는 이유는 무엇입니까?커뮤니케이션예외:통신 링크 고장 (0) | 2023.09.04 |
ImeOptions의 완료 버튼 클릭은 어떻게 처리합니까? (0) | 2023.09.04 |
PowerShell에서 서브루틴을 정의하는 방법 (0) | 2023.09.04 |
왜 PHP가 오류 코드 없이 mysqli_connect에 고착됩니까? (0) | 2023.09.04 |