dojo1.7에서 작업 중입니다. 나는 아약스 반환에서 얻는 다중 부분 응답을 구문 분석하고 싶다.
어떻게 할 수 있습니까? 누군가 나에게 제안 할 수 있습니까?
미리 감사드립니다!dojo에서 다중 부분 응답을 구문 분석하는 방법
0
A
답변
1
Dojo는 기본적으로이 작업을 수행하지 않을 것이라고 생각합니다. 클라이언트에서 멀티 파트를 처리하는 것은 일반적이 아닙니다. multipart-mime에 대한 고유 한 XHR 처리기를 만들어야합니다.
는 접촉 식 제목에 지정된 경계에서 내용을 분할 :eg.
Content-Type: multipart/form-data; boundary=AaB03x
이러한 부분을 분할 자바 스크립트에 간단한
사항 String.split (<REGX>)을 사용할 수 있습니다
. 그런 다음 개별 부분을 구문 분석해야합니다. 각 파트에는 고유 한 머리글 세트가 있고 내용은 Content-Type의 형식에 따라 인코딩됩니다.
첨부 파일을받는 경우 base64 인코딩을 사용하고있는 것 같습니다. 따라서 디코딩도해야합니다.
Dojo Base64 Encode/Decode당신이 (당신이 그것을로드 한 후) 당신이 참고 표준의 XHR 호출에서 핸들러를 소유하고 사용하는 방법
- .
여기서 "mylib/multipart"에서로드 된 "multipart"라는 사용자 정의 처리기를 사용했습니다. Dojo를 사용하면 스크립트에서 수신 한 데이터를 구문 분석하기 위해 핸들러를로드하고로드 할 수 있습니다.
NB : 브라우저의 보안으로 인해로드하는 페이지와 동일한 URL에있는 경우에만 XHR을 통해 데이터를로드 할 수 있습니다. (참조 : Stackoverflow conversation).
나는 아래의 예를 들어 다중 처리기를 만들었습니다
require([ "dojo/_base/xhr", "dojo/_base/array", "dojo/_base/lang" ], function(xhr, array, lang){ lang.mixin(xhr.contentHandlers, { "multipart": function(response){ var parser = { parse: function(response){ var parts = new Array(); var boundary = parser._getBoundary(response); if(boundary){ parts = parser._getParts( response.responseText, boundary ); } return parts; // return empty array if parsing could not be done }, _getBoundary: function(response){ var contentType = response.getResponseHeader("Content-Type"); if(/boundary\=/.test(contentType)){ var parse = /boundary\=(.*?)(;|$)/.exec(contentType); return parse[1]; } return false; // Return false if no boundary found }, _getParts: function(text, boundary){ var parsed = new Array(); var splitter =new RegExp(boundary+"[\r\n]+","g"); var parts = text.split(splitter); // Split at the boundary array.forEach(parts, function(part){ var headBody = part.split("\n\n"); if(headBody.length > 0){ var head = lang.trim(headBody[0]); var body = headBody[1]; if(head != ""){ // Don't parse if no header, probably an error parsed.push({ "head": parser._parseHeaders(head), "body":body }); } } }, this); return parsed; }, _parseHeaders: function(headerText){ // Headers should be in format: Header: Value var header = {}; var lines = headerText.split(/[\r\n]/); array.forEach(lines, function(line){ var parts = line.split(":"); if(parts.length > 0){ header[lang.trim(parts[0])] = lang.trim(parts[1]); } }, this); return header; } }; return parser.parse(response); } }); });
이 콘텐츠 객체의 배열로 XHR에서 반환 된 텍스트를 구문 분석합니다. 각 콘텐츠 개체는 원본 텍스트 본문이 포함 된 본문 특성과 머리글 개체가 포함 된 머리 특성을 포함해야합니다.
일반 텍스트가 아닌 원시 컨텐트를 처리하려면 추가 코드를 작성해야합니다. 모든 상황에서 작동하는지 확인하기 위해 많은 테스트 데이터를 던질 수도 있습니다.
관련 문제
- 1. :: KSOAP 응답을 구문 분석하는 방법 ::
- 2. Recurly ruby 클라이언트에서 응답을 구문 분석하는 방법
- 3. 이 xml 응답을 올바르게 구문 분석하는 방법
- 4. vb.net에서 게시물의 xml 응답을 구문 분석하는 방법
- 5. org.w3c.dom.Element RPX XML 응답을 구문 분석하는 방법
- 6. jquery ajax xhtml 응답을 구문 분석하는 방법?
- 7. 레일에서 json 응답을 구문 분석하는 방법
- 8. 안드로이드에서 Ksoap2 응답을 구문 분석하는 방법
- 9. jQuery를 사용하여 XML 응답을 구문 분석하는 방법
- 10. JSONP 응답을 구문 분석하는 가장 좋은 방법
- 11. MDNS 응답을 구문 분석하는 방법은 무엇입니까?
- 12. AppleScript로 Skype 응답을 구문 분석하는 방법은 무엇입니까?
- 13. 이 HTML 응답을 구문 분석하는 방법은 무엇입니까?
- 14. http 응답을 문자열로 구문 분석하는 방법은 무엇입니까?
- 15. Bing 서비스를 사용하여 GeoCode에서 주소로 XML 응답을 구문 분석하는 방법
- 16. PHP 배열에 대한 REST XML 응답을 구문 분석하는 방법
- 17. SAXparser를 사용하여 XML 요청을 보내고 응답을 구문 분석하는 방법
- 18. Trello API를 사용하여 카드를 만든 후 응답을 구문 분석하는 방법
- 19. C#에서 Google Contacts API의 xml 응답을 구문 분석하는 방법
- 20. 텍스트 파일에 저장된 json 응답을 구문 분석하는 방법
- 21. 다중 패스에서 문자열을 구문 분석하는 프로그래밍 관용구
- 22. 구문 분석 문제 XML 응답을 구문 분석하는 동안 안드로이드
- 23. Facebook Open Graph에서 JSONP 응답을 구문 분석하는 올바른 구문
- 24. 리소스를로드하지 않고 AJAX 응답을 구문 분석하는 방법은 무엇입니까?
- 25. Lex 및 Yacc을 프로그래밍하여 부분 파일을 구문 분석하는 방법
- 26. XMI를 구문 분석하는 방법?
- 27. 구문 분석하는 방법 링크
- 28. JSON 다중 배열을 구문 분석하는 Android
- 29. Json 객체를 구문 분석하는 방법
- 30. Rails에서 URL 쿼리의 다중 값 필드를 구문 분석하는 방법