jsonp?

오늘도 게임 검색 기능을 구현해본다.

계속 삽질(?)을 하면서 ‘동일출처정책’이라는 것과 관련되있다는 것을 알았다.

Cross Domain 관련 issue인데 이것은 나중에 자세하게 정리하려한다.

일단은! 이것을 우회(?)하려고 여러가지 방법을 쓰다가 jsonp라는 것을 알게 되었다.

ajax 호출은 동일한 도메인에서만 호출이 가능하다는 점을 알게 되었다.

생각해보니 실습 프로젝트에서는 ajax를 같은 도메인 안에서만 적용했었다.

그런데 검색하다보니 jsonp를 이용하면 보안상 정책이 적용되지 않는다는 사실도 알았다.

jsonp는 기존 json 방식에서 function 형태로 바꾼 것이라고 한다.

그래서 callback parameter가 추가되는데 다음과 같이 구현을 해보았다.

그런데 여전히 같은 에러가 발생했다. 조금 더 공부하고 다시 적용해봐야 겠다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
{% block extra_script %}
<script type="text/javascript">
$(function(){
$('#app_searchbox').keypress(function(e){
if(e.keyCode==13) {
//e.preventDefault();
alert('과연?');

var url = 'https://api.steampowered.com/ISteamApps/GetAppList/v2/?applist=?';

$.ajax({
type: 'GET',
url: url,
async: false,
jsonp: 'applist',
contentType: "application/json",
dataType: 'jsonp',
success: function(data) {
$.each(data, function(k, v){
console.log(k + v);
});
},
error: function(request,status,error) {
console.log("code = "+ request.status + " message = " + request.responseText + " error = " + error);
}
});
}
});
});
</script>
{% endblock %}
Share