참고 : previous question과 관련이 있습니다.jQuery Java/Wicket 서버에 대한 AJAX 호출이 IE (6/7/8)에서 응답 없음
Wicket 대신에 jQuery를 사용하기로 결정한 복잡한 클라이언트 측 상호 작용이있는 양식이있는 Wicket 페이지가 있습니다 (자세한 내용은 알고 있습니다). 본질적으로 저는 JSON 객체를 만들고, AJAX를 통해 제출하고, 완료 할 때 어떤 작업을 수행하고 있습니다. 이 호출은 Firefox에서는 정상적으로 작동하지만 IE 버전에서는 정상적으로 작동하지 않습니다. 나는 관계없는 쉼표가 없다는 것을 이미 확인했다. 코드는 다음과 같습니다.
var lookup = {
'name': name,
'description': description,
'items': [{
'name': itemName,
'value': itemValue
}]
};
$.ajax({
type: 'post',
url: '${callbackURL}', // This file is parsed by Wicket and receives a dynamic callback URL here. This is not jQuery!
cache: false,
data: {'lookup': JSON.stringify(lookup)},
contentType: 'application/json',
complete: function() {
alert('This never gets called in IE!')
}
});
의견이 있으십니까? 감사!
업데이트 : 내 문제는 IE 캐싱 리소스로 인해 나타납니다. HTML 파일에 no-cache 코드를 넣었지만 페이지가 여전히 캐싱되고 (확장에 따라 JS가 참조하는) JS 파일이 내 jQuery 코드와 함께 캐싱되고있는 것 같습니다. 이전 콜백 URL을 사용하여 더 이상 해당 URL에 아무것도 없으므로 서버가 응답하지 않습니다. 예쁜 URL을 제거하면 모든 것이 잘 작동합니다 (Wicket이 URL을 생성 할 때마다 고유하므로). 그래도 서버 응답이 없더라도 complete
함수가 호출되지 않아야합니까?
문제의 코드를 게시하는 것이 많은 도움이됩니다. HTTP 요청이 실제로 발생하는지 확인 했습니까? IE8 디버거로 그걸 밟았습니까? – Pointy
초기에 코드를 게시하지 않으셔서 죄송합니다. 나는 내 질문을 게시하는 중간에 떠나야 만했고, 거기서 그것을 얻고 싶었다. AJAX 요청이 만들어지고 있습니다 (요청에서 데이터가 성공적으로 유지됩니다).하지만 콜백이 실행되지 않습니다. 예외는 발생하지 않습니다. (try/catch에서 호출을 감싸고 캐치에 넣지 않았습니다.) $에 'error : function (request, status, err) {...}'을 추가했습니다. .ajax()를 호출하여 오류가 반환되지 않았 음을 확인합니다. – Jared