http://alotaiba.github.io/FlyJSONP/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FlyJSONP.post({ | |
url: 'http://www.url.com/post', | |
parameters: { | |
name: 'pjc0247' | |
}, | |
success: function(data) { | |
console.log(data); | |
} | |
}); |
JSONP 특성상 POST 요청은 수행할 수 없다. 하지만 몇 가지 트릭을 사용하면 JSONP의 장점을 살리면서도, POST요청을 보낼 수 있는데, FlyJsonP는 그러한 트릭을 구현한 구현체중의 하나이다.
FlyJsonP 내부적으로는 YQL을 사용한다. (https://developer.yahoo.com/yql/)
즉, GET요청으로 야후 서버한테 정보를 넘겨주면, 야후 서버가 대신 POST를 날려서 결과를 알려주는 구조이다. 클라이언트가 직접 요청을 날리는것이 아니기 때문에 몇가지 케이스에서는 문제가 될 수도 있는 소지가 있지만, 대부분의 경우 괜찮다고 생각한다.
다만 한가지 주의할 사항이 있다. YQL에서는 몇몇 특수문자를 허용하지 않는다. 쿼리 기호랑 겹치기 때문인데, 반드시 이스케이프 하고 사용해야 한다. (https://developer.yahoo.com/boss/search/boss_api_guide/reserve_chars_esc_val.html)
예를 들어 BASE64 인코딩한 결과물 중 + 기호가 들어있는 데이터를 이스케이프 하지 않고 parameters에 넣어서 보내면 문제가 발생할 것이다.
'Javascript' 카테고리의 다른 글
[ionic] 로컬 앱 OAuth2 인증 수행하기 (0) | 2016.01.28 |
---|---|
[Cordova] INSTALL_FAILED_VERSION_DOWNGRADE 에러 발생 시 (0) | 2016.01.28 |
[Ionic] ionic framework 스크롤 속도 문제 (0) | 2016.01.27 |
[node] Error: Cannot find module 'mongodb/node_modules/bson' (0) | 2016.01.07 |
[AngularJS] 커스텀 filter 제작하기 (0) | 2015.12.01 |