Notice
Recent Posts
Recent Comments
Link
투케이2K
10. (ajax/에이젝스) post body json 방식 및 다중 헤더 (header) 추가, 안드로이드 파이어베이스 fcm 푸시 알림 전송 본문
Http & Api
10. (ajax/에이젝스) post body json 방식 및 다중 헤더 (header) 추가, 안드로이드 파이어베이스 fcm 푸시 알림 전송
투케이2K 2021. 7. 22. 18:15[ 개발 환경 설정 ]
개발 툴 : Edit++
개발 언어 : ajax
[소스 코드]
<!-- Jquery CDN 로드 : 항상 최신 버전 사용 -->
<script src="https://code.jquery.com/jquery-latest.min.js"></script>
<!-- 내부 JS 지정 -->
<script>
/*
[JS 요약 설명]
1. $.ajax() : 비동기식 Ajax를 이용하여 HTTP 요청을 전송합니다 (가장 흔히 사용)
2. beforeSend : 통신 요청 전 필요한 헤더 값을 정의합니다
3. success : 요청 성공 시 리턴 받는 데이터를 확인할 수 있습니다
4. error : 요청 실패 에러 상태를 표시해줍니다
5. complete : 요청 완료 상태를 표시해줍니다
6. POST BODY JSON 전송 시 설정 값 :
- xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");
- dataType: "JSON"
7. 설명 :
- 안드로이드 FCM 푸시 알림 메시지를 발송합니다
- 안드로이드 FCM 푸시 onMessageReceived 부분에서 RemoteMessage getData 메소드를 사용해 확인가능합니다
- AJAX에서 푸시를 발송하기 위해서는 파이어베이스 콘솔에 등록된 서버 키를 헤더에 추가해줘야합니다
*/
/* [이벤트 수행 함수] */
function requestPostBodyJson(){
console.log("");
console.log("[requestPostBodyJson] : [start]");
console.log("");
// [요청 url 선언 및 추가 헤더 키 선언]
var reqURL = "https://fcm.googleapis.com/fcm/send"; // 요청 주소
var serverKey = "key=AAAAOQ6ylIM:APA91bEbn6_43LUcI..."; // 헤더에 추가할 푸시 서버 키
// [전송 데이터 선언 실시]
var pushToken = "dsOVgw-OQVWqxtdhLlZHgzK0..."; // 클라이언트 푸시 토큰
var jsonData = { // Body에 첨부할 json 데이터
"data" : {"title":"Push Test", "body":"AJAX 푸시테스트"},
"to" : pushToken,
"Android" : {
"priority" : "high"
},
"priority" : 10
};
console.log("");
console.log("[requestPostBodyJson] : [request] : [url] : " + reqURL);
console.log("[requestPostBodyJson] : [request] : [method] : " + "POST BODY JSON");
console.log("[requestPostBodyJson] : [request] : [body data] : " + JSON.stringify(jsonData));
console.log("");
/* [ajax 통신 정의 부분] */
$.ajax({
// [요청 시작 부분]
url: reqURL, // 주소
data : JSON.stringify(jsonData), //json 데이터
type: "POST", // 전송 타입
async: true, // 비동기 여부
timeout: 5000, // 타임 아웃 설정
dataType: "JSON", // 응답받을 데이터 타입 (XML,JSON,TEXT,HTML)
//contentType: "application/json; charset=utf-8", //헤더의 Content-Type을 설정
beforeSend : function(xhr){ // 다중 헤더 추가 실시
xhr.setRequestHeader("Authorization", serverKey); // 푸시 서버 key 등록
xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8"); //헤더의 Content-Type을 설정
},
// [응답 확인 부분]
success: function(response) {
console.log("");
console.log("[requestPostBodyJson] : [response] : " + JSON.stringify(response));
console.log("");
},
// [에러 확인 부분]
error: function(xhr) {
console.log("");
console.log("[requestPostBodyJson] : [error] : " + xhr);
console.log("");
},
// [완료 확인 부분]
complete:function(data,textStatus) {
console.log("");
console.log("[requestPostBodyJson] : [complete] : " + textStatus);
console.log("");
}
});
};
</script>
[결과 출력]
[요약 설명]
/*
[JS 요약 설명]
1. $.ajax() : 비동기식 Ajax를 이용하여 HTTP 요청을 전송합니다 (가장 흔히 사용)
2. beforeSend : 통신 요청 전 필요한 헤더 값을 정의합니다
3. success : 요청 성공 시 리턴 받는 데이터를 확인할 수 있습니다
4. error : 요청 실패 에러 상태를 표시해줍니다
5. complete : 요청 완료 상태를 표시해줍니다
6. POST BODY JSON 전송 시 설정 값 :
- xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");
- dataType: "JSON"
7. 설명 :
- 안드로이드 FCM 푸시 알림 메시지를 발송합니다
- 안드로이드 FCM 푸시 onMessageReceived 부분에서 RemoteMessage getData 메소드를 사용해 확인가능합니다
- AJAX에서 푸시를 발송하기 위해서는 파이어베이스 콘솔에 등록된 서버 키를 헤더에 추가해줘야합니다
*/
반응형
'Http & Api' 카테고리의 다른 글
12. (ajax/에이젝스) post body json 방식 데이터 전송 및 스프링 서버 api 데이터 확인 방법 (0) | 2021.07.25 |
---|---|
11. (ajax/에이젝스) post query parameter 쿼리 파람 방식 array 배열 데이터 전송 방법 (0) | 2021.07.24 |
9. (ajax/에이젝스) post body FormData (폼 데이터) 파일 전송 실시 - input type file (0) | 2021.07.16 |
8. (ajax/에이젝스) jsonp data type 지정해서 데이터 전송 실시 및 object 형식 데이터 확인 실시 (0) | 2021.07.05 |
7. (ajax/에이젝스) ajax 통신 메소드 종류 모음 (0) | 2021.06.23 |
Comments