이 글에서는 jquery1.8 버전에서 WeChat 호출을 구현하기 위해 ajax를 사용할 때 발생하는 문제에 대한 분석 및 해결 방법을 주로 소개합니다. 필요한 친구들은 참고하면 됩니다
먼저 문제의 배경을 말씀드리겠습니다. 현재 WeChat의 특정 기능을 개발하는 프로젝트를 진행 중입니다. asp.net 및 jquery 버전 1.8.0을 사용하여 개발됩니다.
WeChat에서 버튼을 클릭하면 이벤트가 발생하고, ajax를 호출하여 서버와 상호 작용하면 콜백 함수에서 오류가 발생합니다.
이유 분석: 가장 먼저 생각한 것은 반환된 데이터 유형에 문제가 있다는 것이었습니다. 1.4 이상의 jquery 버전은 json 형식에 대해 매우 엄격하고 {"target":true를 준수해야 하기 때문입니다. ,"message":"success"} 이러한 형식입니다. JSON.stringify() 함수를 사용하여 응답 객체를 분석한 결과 결과가 일관되어 원인이 제거되었습니다.
ajax는 error를 사용하기 때문에 XMLHttpRequest, textStatus, errorThrown을 포함하는 오류 함수의 매개변수를 분석하기 시작했습니다. XMLHttpRequest.status는 0이고 XMLHttpRequest.readyState는 0으로, 이는 양식에 XMLHttpRequest 개체가 있지만 초기화되지 않았음을 나타냅니다. 다음으로 XMLHttpRequest 개체를 초기화하는 방법을 연구하기 시작했습니다.
해결책:
var xmlHttpRequest; $(function(){ if(window.XMLHttpRequest){ xmlHttpRequest=new XMLHttpRequest(); }else{ xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP"); } xmlHttpRequest.open("GET","AjaxServlet",true); });
이렇게 하면 위에서 설명한 문제를 해결할 수 있습니다. PC의 브라우저에는 XMLHttpRequest 개체가 내장되어 있고 In WeChat에는 있으므로 PC에서 일반 Ajax에 액세스하는 데 문제가 없습니다. , 이러한 현상이 발생하면 수동으로 빌드하고 초기화해야 할 수도 있습니다.
ps: Android 버전의 WeChat 내장 브라우저 및 IE6 브라우저에서 ajax 요청의 오류 처리를 중단합니다.
Android 버전의 WeChat 내장 브라우저에서 페이지 요소에 클릭 이벤트를 바인딩하여 ajax 요청을 트리거합니다. 브라우저 및 IE6에서는 요청이 자주 중단되고 "abort" 오류 유형이 반환되지만 다른 브라우저에서는 모든 것이 정상입니다.
Fiddler2와 httpWatch를 사용하여 IE6에서 요청을 모니터링하면 "aborted"가 자주 나타나며 주말 내내 걸립니다. . . . .
더 이상 말도 안되는 소리는 그만하세요....
해결책: 라벨에 onclick='return false;'를 추가하세요
위 내용은 제가 모든 사람을 위해 정리한 내용입니다. 앞으로 모든 사람에게 도움이 되기를 바랍니다.
관련 기사:
위 내용은 jquery1.8 버전은 ajax를 사용하여 WeChat 통화에 대한 문제 분석 및 솔루션을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!