JSONP는 Opera, Chrome & Safari와 협력하고 있습니까?
-
19-09-2019 - |
문제
내가 구축중인 웹 사이트에서 로그인 할 때 (데이터베이스가 다른 서버에 있기 때문에) 사용합니다. JSON 패딩 사용자가 올바른 자격 증명인지 확인하십시오.
작동하고 있습니다 완벽하게 (IE7, IE8 & FF), 내가 시도 할 때까지 크롬, 사파리 및 오페라 완전한 재난 인 곳.
$.ajax({
type: "GET",
dataType: "jsonp",
url: "http://someurl.com",
data: aRequestData,
cache: false,
error: function (XMLHttpRequest, textStatus, errorThrown) {
// typically only one of textStatus or errorThrown
// will have info
alert("Error occured textStatus=" + textStatus + " errorThrown=" + errorThrown);
},
success: function(data) {
alert('success');
}
});
평범하고 단순하고 브라우저 창에서 작동하지만 크롬, Safari & Opera에서는 작동하지 않았으므로 성공 경보에 결코 얻지 못했습니다.
이 문제를 해결하는 방법을 아는 사람이 있습니까?
감사.
해결책 2
문제는 ajax 호출이 이루어진 "Thickbox"(JQuery Thickbox 플러그인)에 HTML 페이지 헤더에 남겨졌습니다!
Firefox 또는 IE는이 경우 반복적 인 헤더를 신경 쓰지 않지만 WebKit 엔진은 그렇습니다!
방금 여분의 헤더를 제거해야했고 모든 것이 트랙으로 돌아 왔습니다.
모두 감사합니다!
다른 팁
Safari 및 Chrome에 내장 된 개발자 도구를 사용하여 요청에서 HTTP Status Code 200으로 응답을 받는지 확인해 보셨습니까?
Chrome에서 '보기'메뉴에서 이러한 도구에 액세스 할 수 있으며 '리소스'탭을 선택하여 모든 요청을 확인하십시오. Safari를 사용할 때 일부 설정에서 이러한 도구를 활성화해야한다고 생각합니다.
jQuery없이 버전을 만들기 위해 버전을 만들려고 시도 할 수 있습니다. 전화에서 200 상태를 얻지 못하면 jQuery가 오류 함수를 호출하지 않고 실패 할 것이라고 생각합니다. 오류 처리.
편집 된 버전의 다음 컨텐츠로 HTML 파일을 만들고 브라우저에로드하십시오.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title />
<script type="text/javascript">
function ws_results(obj) {
alert(obj);
}
</script>
<script type="text/javascript" src="http://someurl.com?foo=bar&callback=ws_results" />
</head>
<body />
</html>