'개발 이야기/삽질의 해답들'에 해당되는 글 3건

  1. 2013.08.19 "URL" not allowed by Access-Control-Allow-Origin
  2. 2010.02.02 자바로 정렬하기
  3. 2009.07.31 Spring2.0 Dao 에러 중 setter 설정 에러

jQuery의 Ajax로 post로 날릴 때 

XMLHttpRequest cannot load ...."URL" not allowed by Access-Control-Allow-Origin 

이라는 에러가 나는 건 간단히 말하면 크로스브라우징 에러이다.


참조 : http://blog.iolo.pe.kr/category/hacking/web

Ajax에는 Same Origin Policy라는 원칙이 있다. 말 그대로, 현재 브라우져에 보여지고 있는 HTML을 내려준 웹서버(Origin)에게만 Ajax 요청을 보낼 수 있다.


MS가 XMLHttpRequest를 처음 만들 때만 해도 이런 제약은 당연한 것처럼 보였지만, 지금에 와서는 OpenAPI를 통한 매시업(Mashup)이 활성화되는 데 가장 큰 장애물이 되었다. 매시업이 아니더라도 여러 개의 도메인을 사용해야 하는 대규모 사이트를 개발할 때도 골치거리였다. Same Origin Policy를 우회하는 방법으로 JSONP, IFRAME IO, CrossDomain Proxy 등이 고안되었지만, 보안성이 취약하다거나, 동기 호출이 안되거나, 주고 받는 데이터 형식이 제한되거나, 직관적이지 못하거나(dirty hack), ... 등의 문제점 때문에 표준화되기엔 무리가 있었다.


(중략) 한 참 뒤에야 W3C는 (MS의 IE가 제공하는 방식을 수용하여) 크로스도메인간에도 Ajax요청을 주고 받을 수 있는 방법을 표준화 했는데, 그것이 바로 CORS다.


CORS를 한 마디로 요약하면, "요청을 받은 웹서버가 허락하면 크로스도메인이라도 Ajax로 통신할 수 있다"라는 정책이다. 기술적으로는 크로스도메인에 위치한 웹서버가 응답에 적절한 Access-Control-Allow-류의 헤더를 보냄으로써 크로스도메인 Ajax를 허용 수 있다


헤서 자신의 도메인과 post로 날리는 url이 같은지 확인해보면 알 수 있다.


만약 크로스브라우징을 지원해야 할 경우는


아래처럼 요청을 하면 되며

$.ajax({


    url: 'https://www.googleapis.com/moderator/v1/series?key='+key,

    data: myData,

    type: 'GET',

    crossDomain: true,

    dataType: 'jsonp',

    jsonp : 'callback',

    success: function() { alert("Success"); },

    error: function() { alert('Failed!'); },

    beforeSend: setHeader

});


받는 형태는 아래형태여야만 한다.

callback({"key1" : "value1",  "key2" : "value2"});



'개발 이야기 > 삽질의 해답들' 카테고리의 다른 글

자바로 정렬하기  (0) 2010.02.02
Spring2.0 Dao 에러 중 setter 설정 에러  (0) 2009.07.31
Posted by 서오석
,

레퍼런스 : http://blog.naver.com/whosnext?Redirect=Log&logNo=100037993078
               http://gear4001.tistory.com/17

정렬을 하려면 2가지 인터페이스를 사용할 수 있다.

java.lang.Comparable
java.util.Comparator

1. Arrays.sort()로 sort 하는 법

배열인 경우인 경우는 Arrays.sort(arr);

리스트로 만들어진 경우 Collections.sort(list);

이럼 끝

2. 리스트인데 안에 정렬 기준을 바꾸고 싶은 경우 

리스트 같은 객체들을 인자로 받아서 TreeSet을 만들면 알아서 기본순서로(compareTo에 정의된 대로) 정렬
Set set = new TreeSet(list);

정렬기준을 바꾸고 싶다면 Comparator를 구현한 객체를 생성자로 만든후 리스트를 집어넣어줌

Set set2 = new TreeSet(new YoungOrderComparator());
set2.addAll(list);


예제 소스



3. 중복 제거하고 정렬하기

Treeset 사용

Posted by 서오석
,
스프링에서 iBatis나 Spring을 설정하고 사용하는 도중 아래와 같은 메시지를 담은 exception을 나타나면

Bean property 'TestDao' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?

이것은 자신이 testDao를 bean으로 설정 한 후 testDao를 사용하는 어떤 클래스에 testDao를 setter injection하지 않았기 때문이다.

간단하게

 public void setTestDao(TestDao testDao) {
  this.testDao = testDao;
 }

같은 setter를 하나 만들어주면 잘 될 것이다.

'개발 이야기 > 삽질의 해답들' 카테고리의 다른 글

"URL" not allowed by Access-Control-Allow-Origin  (0) 2013.08.19
자바로 정렬하기  (0) 2010.02.02
Posted by 서오석
,