Safari 11.1 업데이트 이후 ajax 버그
1. safari 11.1 update
- 기존 Safari (mac or ios)에서는 정상적으로 동작하던 ajax가 safari 11.1 버전 업데이트를 진행한 후로 오류가 발생함.
- ajax 내 error 메시지가 다음과 같다
Failed to load resource: The operation couldn’t be completed. Protocol error
- Chrome이나 Firefox 등 최신버전에서는 문제가 없었다.
2. 원인
- Webkit 버그!!!! (Webkit 빌드 r230963)
- input[type=file] 또는 formData 내에 file
<input type="file"/>
- ajax 내 data에 빈 파일 필드가 전송되면 발생함.
- (전 IOS 11.3에서 발생하여 수정 했습니다.)
3. 해결책
- https://trac.webkit.org/changeset/230963/webkit : 수정됨.
- 임시 해결책
frmData.delete("file"); //var frmData = new FormData() 를 사용할 경우
or
$("input[type=file]").each(function () {
var tmpValue = $(this).val();
if (tmpValue === undefined || tmpValue === "") {
$(this).remove();
}
});