2013-04-09 7 views
1

끝점 (URL)에 일부 데이터가 저장되어 있습니다. 파일은 .jsp 파일입니다.JavaScript를 사용하여 엔드 포인트에서 데이터를 가져 오는 방법은 무엇입니까?

다음은 데이터입니다.

{"successful":"true","rows":[{"zip":"56431","user_id":"35","name":"test"}]} 

어떻게 끝점에서 데이터를 가져올 수 있습니까? 이

var data = get("www.test.com/test.jsp"); 
var jsonObj = JSON.parse(data); 

등 같은 www.test.com/test.jsp

즉 뭔가 ..

는 것이 가능할까요?

+0

"엔드 포인트"란 무엇입니까? – Pointy

+0

데이터가 들어있는 .jsp 파일에 대한 URL을 말합니다. – Trevor

+0

귀하의 질문에 자바 또는 자바 스크립트 (귀하의 태그를 기반으로 말할 수 없다)이 일을 어떻게 –

답변

1

jQuery이 간단합니다. URL을 통해 변수를 전송하고 소스 URL로부터 응답을받을 수 있습니다.

function get_(url, func) 
{ 
var http; 
try { http = new XMLHttpRequest(); } catch (e) { try { http = new ActiveXObject(\"Msxml2.XMLHTTP\"); } catch (e) { try { http = new ActiveXObject(\"Microsoft.XMLHTTP\"); } catch (e) { alert(\"Your browser broke!\"); return false; } } } 

http.open(\"GET\", url, true); 
http.onreadystatechange = function() { if(http.readyState == 4) { func(http); } } 
http.send(null); 
} 

여기에 버튼을 눌러 호출을 트리거하는 방법의 예이며, 이것을 사용하고 응답 핸들러 함수를 지정하려면 :

HTML

<button onClick='get_("source_url.jsp", showResponse);'> Show the response </button> 

JAVASCRIPT

function showResponse(h) { alert(h.responseText); } 

로를 명확한 경우 get_ 함수의 두 번째 매개 변수는 함수에 대한 참조입니다. get_ 함수를 사용할 때 지정하는 함수가 무엇이든 관계없이 source_url 파일의 출력 인 .responseText 속성을 포함하는 단일 매개 변수를 전달합니다.

필자는 PHP 서버와 함께 작동하여 사용자 인증을위한 다른 버전을 가지고 있지만이 기능을 사용하여 서버에 대한 정보의 무단로드/저장을 방지합니다.

+0

이 위대한하지만 callEndpoint 함수에서 동결 유지 몇 가지 이유가 좋아 보인다. 나는 phpstorm 에서이 코드를 실행하고 액세스하는 등 여러 가지 시도 local .jsp 파일을 외부 컴퓨터와 반대로 사용하고 있습니다. 심지어 컴퓨터에서 로컬로 w3shools 예제를 실행하려고 시도했는데 $ .getJSON 호출 이후에 멈추는 것처럼 보였습니다. 즉, 경고 메시지를 그 메시지에 넣으면 그 메시지가 나타나지 않습니다.이 문제의 원인은 무엇입니까? – Trevor

+1

자동으로 실패 할 수 있습니다. 파이어 버그를 사용하여 코드를 단계별로 실행하는 것이 좋습니다. 'getJSON' 함수는 또한 AJAX 요청의 성공 또는 실패에 관한 더 자세한 정보에 접근 할 수있게합니다. http://api.jquery.com/jQuery.getJSON/ – laz

+0

을보십시오. phpStorm을 통해 크롬 브라우저를 실행할 때 어떤 이유로 든 저를 위해 작동하지 않았습니다. 아이러니하게도 Firebug를 설치하여 Firebug를 실행할 수 있도록 설치했는데 디버깅을 할 때 계획을 세우고있었습니다. PHPStorm-Chrome -> $. getJson (mac) 콤보가 나에게 효과가 없었습니다.하지만 파이어 폭스는 그 속임수를 사용했습니다. – Trevor

1
var obj = JSON.parse(string);//Were string is your data string 

자세한 내용은 this 답변을 참조하십시오.

끝점의 의미를 모르겠지만 URL의 데이터를 파싱하지 않았 으면합니다. 당신이 AJAX 솔루션을 찾고 있다면

<html> 
<head> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script type="text/javascript"> 
function callEndpoint() { 
    $.getJSON('/endpoint.jsp', function(data) { 
     $('#output').append(data.rows[0].user_id); 
    }); 
} 
callEndpoint(); 
</script> 
<body> 
<div id="output"></div> 
</body> 
</html> 
3

,

 
var data = '{"successful":"true","rows":[{"zip":"56431","user_id":"35","name":"test"}]}' 
var jsonObj = JSON.parse(data); 
var userID = jsonObj.rows[0].user_id; 

var name = jsonObj.rows[0].name 
1

,이 기능을 사용할 수 있습니다 :이 코드는 당신을 도울 수 있기를 바랍니다

+0

불행히도 입력 잭 주셔서 고맙습니다. 그래서 Ajax에 익숙하지 않아 get_ 함수를 구현하는 방법을 알지 못합니다. 너무 많은 문제가 아니라면 전체 소스를 사용한 빠른 예제가 도움이 될 것입니다. – Trevor

+1

실제로 코드는있는 그대로 완성됩니다. get_ 함수는 일반적인 자바 스크립트 함수입니다. 그것은 showResponse 자바 스크립트 함수입니다. "source_url.jsp"를 페이지에서 수신 할 텍스트를 출력하는 실제 파일 이름으로 바꾸면됩니다. 예를 들어 정적 HTML 파일 일 수도 있습니다. 그것이 php라면, 인쇄되거나 반향되는 것은 경고 대화창에 보여 질 것입니다. –

+0

당신의 도움과 설명에 감사드립니다. – Trevor

관련 문제