yoursyun
[iis7] jquery, json cross domain 처리 본문
a.com 에서 b.com 의 json 형태로 데이터를 받아와야 할일이 있었다. ( 크로스 도메인 cors 처리 )
호출 ajax (a.com)
$.ajax({
url: "http://b.com/called.asp"
, type: "POST"
, dataType: "json"
, contentType: "application/json"
, data: {
"title":"test"
}
, error: function (res) {
$("#print").text("error");
console.log("error");
}
, success: function (res) {
$("#print").text(res.title);
console.log(res);
}
});
호출되어지는 asp ( b.com )
인터넷에서는 아래와 같이 ASP 헤더를 추가 하라고 하였으나, 이렇게는 동작이 되지 않았다.
call response.addHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS")
call response.addHeader("Access-Control-Allow-Headers", "X-Requested-With, Content-Type")
call response.addHeader("Access-Control-Allow-Origin", "http://a.com")
한참 삽질후 iis > 해당사이트 ( b.com )의 > 구성편집기 ( web.config ) 에 아래의 내용을 추가 해주면 된다.
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
<add name="Access-Control-Allow-Methods" value="POST, GET, OPTIONS" />
<add name="Access-Control-Allow-Origin" value="http://a.com" />
</customHeaders>
</httpProtocol>
</system.webServer>
* web.config 를 적용해도 좋고, 구성편집기에서 입력해도 된다.