2017-03-15 1 views
0

검색 값을 반환하는 교차 도메인 게시 자바 스크립트 형식이 필요합니다. 전체 작업은 외부 라이브러리를 사용하지 않고 자바 스크립트에서만 수행해야합니다.간단한 자바 스크립트로만 다른 서버에 데이터를 게시하고 반환 값을 가져 오는 방법은 무엇입니까?

예 :{data1:'info1', data2:'info2', data3:'info3', data4:'info4', ......} 같은 JSON 데이터와 domain2.com/searchTableInfo1에 데이터를 게시 할 domain1.com 내 서버가 대가 (일부 PARAMS있는 테이블을 검색처럼) 나는 너무 JSON의 검색 결과를 얻을 싶어요.

+2

서버는 CORS 헤더를 사용하여이를 허용해야합니다 - 그러면'fetch' 또는'XMLHttpRequest'를 사용하여 데이터로 'POST'요청을하고 두 가지 바닐라 JS AJAX 방법을 사용하기로 선택 –

+0

[Duplicate] (http://stackoverflow.com/questions/8567114/how-to-make-an-ajax-call-without-jquery)? – Isaiah

+0

답장을 보내 주신 Jaromanda X님께 감사의 말씀을 전합니다. –

답변

1

자바 스크립트가 client-side입니다 자세한 예가 여기에 프론트 엔드 부분에 대한 몇 가지 헤더를 설정해야합니다, 그래서 그것은 바로 같은 것을 통해 서버로 전송 변수에 액세스 할 수 없습니다 게시물 요청

바닐라 JS에서 수행 할 수있는 에서까지 게시 요청을 수행하려면 서버를 통해 값을 검색하고 JSON을 그런 식으로 반환하는 몇 가지 옵션이 있습니다. 예를 들어

(이 domain1.com에 JS에서오고 domain2.com에 대한 비동기 크로스 도메인 요청입니다) :

var http = new XMLHttpRequest(); 
var url = "domain2.com/searchTableInfo1"; 
var params = JSON.stringify(myJSONobj); 
http.open("POST", url, true); 

//Send the proper header information along with the request 
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 

http.onreadystatechange = function() { 
    if(http.readyState == 4 && http.status == 200) { 
     alert(http.responseText);//the JSON string from server will show here 
    } 
} 
http.send(params); 

서버 측 언어에 따라 뭔가를 볼 수 있었다 domain2.com에 그러나 는 일부 서버 측 처리를 필요로하는 POST 요청을 사용

<?php 
    $data = json_decode($_POST['myJSONobj']); 

    //handle data processing here 

    $jsonToReturn = array("Enter processed data here"); 
    echo json_encode($jsonToReturn); 
?> 

: (예 PHP에서,하지만 당신은 Node.js를, ASP.Net, 및 기타 다양한 옵션을 실행 할 수 있습니다)이 같은 domain2.com의 데이터 (비 JS - 물론 노드에 있지 않으면!). 이것이 가능하지 않은 경우 위의 JS에서 바의 일부를 변경하여 get 비동기 요청을 시도하면 domain1.com에 동일한 도메인 간 액세스가 부여되지만 Javascript의 범위와 그 범위를 이해해야합니다 클라이언트 측 언어로서의 액세스.

질문이 있으시면 알려주십시오.

관련 문제