JQuery2015. 3. 5. 15:29

개발중 List에서 URL을 꺼내와 URL에서 JSON을 가져다 데이터를 가공하는 코드를 짜고 있었다.


$.ajax({

            type : "POST",

            url : jsonList.jsonUrl,

            dataType : "JSON", // 옵션이므로 JSON으로 받을게 아니면 안써도 됨

async : false,

        success : function(data) {

...

        },

        complete : function(data) {

           ...

        },

        error : function(xhr, status, error) {

...

        }

    });


위의 코드를 List길이 만큼 반복문을 돌며 데이터를 가져오는 부분인데 Safari를 제외한 모든 브라우저에서는 정상 작동을 했다.

하지만 Safari에서만 일부 데이터가 누락 되는것을 확인.

콘솔을 보니 Json파일을 제대로 못읽어 오는 에러가 발생을 했다.


Failed to load resource: the server responded with a status of 412 (Precondition Failed).


위와 같은 에러가 발생하는것을 알 수 있었다.

문제 해결은 POST방식으로 데이터를 호출 하던것을 GET으로 바꾸면서 해결이 되었는데..

이게 대체 어떤 이유에서 발생하는건지 모르겠다.

일단은 해결채근 찾긴했는데 왜그런지를 좀더 찾아봐야 할것 같다.


412 Status Code Explained


A 412 status code indicates that one of the conditions the request was made under has failed. A precondition specified in one or more Request-Header fields returned false.


Why it occurs


The server does not meet one of the preconditions that the requester put on the request. i.e.,The header of the request specified information about acceptable files that is not applicable to the requested file.



Fixing 412 Error Code


The problem can only be resolved by examining what your client system is trying to do and then discussing with your ISP why the Web server fails the 'Precondition' specification sent by the client system. If you are monitor your website through 100pulse, we will intimate whenever you encounter 412 status code error through e-mail or Short message service.


Status 412에 원인의 위와 같다.

서버가 원하는 요청에서 False를 반환해서생기는 에러라는데..영어를 자세히 모르니 답답하네..


412 Precondition Failed 에 대한 설명이 있는 사이트 링크 http://www.checkupdown.com/status/E412.html

Posted by Z700zZz
JQuery2015. 2. 26. 10:29

여러개의 Json파일에서 Json객체를 불러와 이 객체를 순차적으로 Array에 담는 소스를 구현했는데..

Json파일을 불러오는 API를 검색하니 나온게 jQuery의 getJSON..


for(var i = 0;i <jsonList.length;i++){

var jqxhr = $.getJSON(jsonList[i].jsonUrl, function(json) {

list.push(json);

pushList(json);

});

}


위와 같은 코드를 작성후 테스트 해보니..데이터를 아주 잘 읽어들이고 list의 데이터를 디버거로 확인해봐도 아주 잘 저장 되 있는것을 확인..하지만 소스 실행이 다 된 후 list에 접근하려 한때마다 Undefined가 발생하였다.

분면 콘솔에는 데이터가 아주 이쁘게 들어있는것을 확인했는데 왜이런 것일까..

해결은 getJson을 안쓰고 Ajax를 이용해서 해결함..

for문 돌면서 데이터를 가지고 오는동시에 객체에 접근을 하려하니 Undefined가 발생하는것이었다.

Ajax로 파일을 불러올때 async옵션을 Fasle로 주니 이상없이 객체 접근도 가능하고 아주 잘됨..

괜히 소스코드 몇자 줄여보자고 안쓰던거 썼다가 몇시간동안 뭔 개고생이여..

Posted by Z700zZz
JQuery2015. 1. 21. 16:58

$(this).closest('li').remove();


현재 이벤트가 발생된 Element의 부모 태그들중 li 태그를 찾아 지우기.

리스트에서 내가 지우고 싶은 Row를 지울때 사용하면 된다.

li태그 외에도 지우고 싶은 옵션을 closest함수의 파라미터로 넣으면 된다.

Posted by Z700zZz