2012-11-15 5 views
0

Windows 8 앱에 대해 JSON의 다음 URL의 유효성을 검사하려고합니다. 문제는 다음 코드가 실행되어 제공된 목록 상자에 바인딩되지 않는다는 것입니다. 코드가 작동하고 내가 작성한 JSON으로 코드가 작성되었음을 알았습니다. 내가 JSON의 valadator에 URL을 복사하여 붙여 ..if이 웹 사이트에서 볼URL 입력시 JSON이 유효하지 않지만 복사하여 붙여 넣기 할 때 유효합니다.

new WinJS.Binding.List(json.results); 

json으로는 내가 얻을 jsonlint.com로

http://avalonfashions.ie/JSON/ut4.php 

... 웹 사이트에 유효한 것으로 나타나고있다 :

Parse error on line 1 <\!DOCTYPEhtmlPUBLIC"^Expecting '{', '[' 

... 그러나 코드를 복사하여 붙여 넣으면 URL이 유효합니다.

나는 이것이 이것에 대한 간단한 해결책이라는 것을 알고 있지만, 나는 내 삶을 위해 일할 수 없다. 어떤 도움을 주셔서 감사합니다.

답변

0

문제는 URL이 적절한 JSON 응답을 반환하지 않는다는 것입니다. JSON이 형식화 된 코드 블록에 포함 된 HTML 응답을 반환합니다. 따라서 복사 및 붙여 넣기가 작동하는 동안 코드는이를 감싸고 중단하는 모든 HTML을 보게됩니다 (유효하지 않기 때문에).

제어하는 ​​API 인 경우 PHP 스크립트 (header('Content-type: application/json'))에 Content-type 헤더를 설정하고 HTML 코드가 전혀없는 JSON 문자열 만 반환해야합니다.

그렇지 않은 경우 가장 좋은 방법은 URL을 가져온 다음 나머지 JSON을 구문 분석 할 수 있도록 응답에서 모든 HTML을 제거하는 것입니다. DOM 파싱 라이브러리가 도움이 될 것입니다.

편집 : 응답이 현재 (또는 이미) 올바르다 고 나타나고 http://jsonlint.com에서 정상적으로 유효한지 확인합니다.

+0

감사합니다. 테스트 도중 응용 프로그램/json을 가지고 있었고 어떤 이유로 든 실현하지 못한 채 주석 처리했습니다.

관련 문제