2014-09-07 4 views
-1

자바 스크립트에서 URL 요청을하려고합니다. 요청에 대한 응답은 일반 텍스트 형식입니다.자바 스크립트의 URL 요청?

#!/bin/sh 

x=$(wget -O- "http://www.example.com/give_cookie?token=85EFC743VGDSX534DWDSACVC") 

echo "$x" 

이 스크립트 실행의 결과 다음과 같습니다 : 쉘 스크립트에서 나는이 작업을 수행 할 수

$ response({"name":"user4015668","message":"OM_NOM_NOM_THANKS_FOR_COOKIE"}); 

우선은 XMLHttpRequest를 보았다, 그러나 그것은 요청으로 작동하지 않을 것을 알아 냈다 다른 도메인입니다. 응답은 지금 어딘가에 것 같다

[-] <script src="http://www.example.com/give_cookie?token=85EFC743VGDSX534DWDSACVC"> 
     1 response({"name":"user4015668","message":"OM_NOM_NOM_THANKS_FOR_COOKIE"}); 

:

방화범을 사용하는 동안 파이어 폭스에서 페이지를로드
<!DOCTYPE html> 
<html> 
<head> 
    <title>My website</title> 
</head> 
<body> 

<script type="text/javascript"> 
    var x = document.createElement('script'); 
    x.src = http://www.example.com/give_cookie?token=85EFC743VGDSX534DWDSACVC 
    document.head.appendChild(x); 
</script> 

</body> 
</html> 

내가 HTML의 신전에서 <head> 섹션에서 참조 : 그럼이 방법에 대해 읽어 HTML 문서이지만, 어떻게 연락 할 수 있는지 모르겠습니다.

필자의 쉘 스크립트 예제에서와 같이 변수에 응답을 어떻게 지정할 수 있습니까?

+0

아니요. 동기식 네트워크 IO를 수행 할 수 없습니다. – SLaks

답변

0

먼저 XMLHttpRequest를 살펴 보았지만 요청이 다른 도메인에있는 것처럼 작동하지 않는다는 것을 알았습니다.

XHR을 사용하여 다른 도메인의 콘텐츠를 검색 할 수 없습니다. without that other domain's active participation through CORS.

표시되는 요청 데이터는 JSONP 형식입니다. 이는 반환 값이 유효한 자바이기 때문에 실제로 <script> 태그가로드 될 수 있음을 의미합니다. 응답 내용을 읽으면 개체가 유일한 매개 변수 인 response 함수를 호출하는 것을 볼 수 있습니다. 따라서 다음과 같이 하나를 정의해야합니다.

function response(v) { 
    console.log(v); 
} 

Read more on JSONP here. 일반적으로 JSONP 지원 서버는 GET 매개 변수를 통해 응답에 함수 이름을 지정할 수 있습니다.

+0

감사. 이제 콘솔 로그에서이 응답을 볼 수 있습니다 :'Object {name = "user4015668", message = "OM_NOM_NOM_THANKS_FOR_COOKIE"}'그러면'alert (v)'와 같은 응답을 기대할 수 있습니다. popup하지만 표시되는 텍스트는'[object Object]'입니다. 올바른 응답을 얻는 방법을 알고 있습니까? – user4015668

+0

나는 스스로에게 대답 할 것이다 :'alert (v.name);와'alert (v.message); – user4015668