제목 | rest API 만드는 도중.. | ||
---|---|---|---|
글쓴이 | 닉 | 작성시각 | 2016/10/28 14:35:37 |
|
|||
https://github.com/chriskacerguis/codeigniter-restserver 위 깃헙 라이브러리를 활용해서 미리 api를 만들었습니다. postman으로 get 잘되서 아 땡잡았다 했는데 post는 안되더라고요. 이유는 config.php 에 csrf_protection = true설정 때문이었어요 그래서 hook을 이용해서 껐어요. curl로 요청했는데 잘되길래 react로 프론트 만들고 있는데 jquery ajax로 요청했는데 안되더라고요 ㅠㅠ 한 만 하루를 꼬박 구글링 및 낑낑대면서 원인을 알았습니다. ajax시 cors (다른도메인에서 요청하는건가봐요.) 관련 이슈였는데, 헤더에 추가를 해줘야 했어요. 혹시 고생하실까봐 소스 남깁니다. hook 소스.. (pre_system에서 호출..) class _Api_common { function index () { if (isset($_SERVER['REQUEST_URI'])) { $req_uri = explode('/',$_SERVER['REQUEST_URI']); if ($req_uri[1] == API_URI) { get_config(array('csrf_protection' => false)); header('Access-Control-Allow-Origin: *'); header("Access-Control-Allow-Headers: X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method"); header("Access-Control-Allow-Methods: GET, POST, OPTIONS, PUT, DELETE"); $method = $_SERVER['REQUEST_METHOD']; if($method == "OPTIONS") { die(); } } } } } 자바스크립트 소스.. import $ from 'jquery'; import * as constant from '../constant/constant'; class Ylib { apiUrl (seg) { let url = constant.apiUrl return url + seg }//end apiUrl apiAjax(method='get',seg='',data,suc,err) { let contentType ="application/x-www-form-urlencoded; charset=utf-8"; //for IE8,IE9 if (window.XDomainRequest) contentType = "text/plain"; let setting = { crossDomain:true, url: this.apiUrl(seg), type : method, dataType : 'json', contentType:contentType, beforeSend : function(xhr){ xhr.setRequestHeader("X-API-KEY", constant.apiKey); }, success: function(data) { if ( suc !== undefined && typeof(suc) === "function" ) suc(data) }, error: (jqXHR, textStatus, errorThrown) => { if ( err !== undefined && typeof(err) === "function" ) err(jqXHR, textStatus, errorThrown) } } if (data !== undefined) setting = {...setting, data:data} return $.ajax(setting); } //end apiAjax } //end class const ylib = new Ylib(); export default ylib; 참고만 하세요~~ ^^; |
|||
다음글 | ci4 보고 있는데 재미있네요. (16) | ||
이전글 | 파이어폭스서 中 치후360 자회사 인증서 차단 (1) | ||
한대승(불의회상)
/
2016/11/03 17:48:15 /
추천
0
@닉 팁 게시판으로 옮겨도 괜찮을까요?
|
닉
/
2016/11/04 10:26:55 /
추천
0
아 네 ^^
|