질문 : JavaScript를 통해 도메인 간 POST 요청을 보내려면 어떻게해야합니까?
JavaScript를 통해 도메인 간 POST 요청을 보내려면 어떻게해야합니까?
참고-페이지를 새로 고치면 안되며 나중에 응답을 가져와 구문 분석해야합니다.
답변
업데이트 : 계속하기 전에 모두가 CORS에 대한 html5rocks 튜토리얼을 읽고 이해해야합니다. 이해하기 쉽고 매우 명확합니다.
POST되는 서버를 제어하는 경우 서버에 응답 헤더를 설정하여 "교차 출처 리소스 공유 표준"을 활용하면됩니다. 이 답변은이 스레드의 다른 답변에서 논의되지만 내 의견으로는 명확하지 않습니다.
간단히 말해서 from.com/1.html에서 to.com/postHere.php로 교차 도메인 POST를 수행하는 방법입니다 (예 : PHP 사용). 참고 : NON OPTIONS
Access-Control-Allow-Origin
을 설정하면됩니다.이 예에서는 항상 더 작은 코드 스 니펫에 대해 모든 헤더를 설정합니다.
- postHere.php에서 다음을 설정하십시오.
이렇게하면 스크립트가 도메인 간 POST, GET 및 OPTIONS를 만들 수 있습니다. 계속 읽으면 분명해질 것입니다 ...switch ($_SERVER['HTTP_ORIGIN']) { case 'http://from.com': case 'https://from.com': header('Access-Control-Allow-Origin: '.$_SERVER['HTTP_ORIGIN']); header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS'); header('Access-Control-Max-Age: 1000'); header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With'); break; }
- JS에서 교차 도메인 POST를 설정합니다 (jQuery 예제) :
$.ajax({ type: 'POST', url: 'https://to.com/postHere.php', crossDomain: true, data: '{"some":"json"}', dataType: 'json', success: function(responseData, textStatus, jqXHR) { var value = responseData.someKey; }, error: function (responseData, textStatus, errorThrown) { alert('POST failed.'); } });
2 단계에서 POST를 수행하면 브라우저가 "OPTIONS"메소드를 서버로 보냅니다. 이것은 브라우저에 의한 "스 니프 (sniff)"로 서버에 POST를 수행하는 동안 멋진 지 확인합니다. 서버는 요청이 "http://from.com "또는 " https://from.com "에서 시작된 경우 POST | GET | ORIGIN에 대한 확인을 브라우저에 알리는 "Access-Control-Allow-Origin"으로 응답합니다. 서버가 정상이므로 브라우저는 두 번째 요청 (이번에는 POST)을 수행합니다. 클라이언트가 보내는 콘텐츠 유형을 설정하도록하는 것이 좋습니다. 따라서이를 허용해야합니다.
MDN에는 전체 흐름이 어떻게 작동하는지 자세히 설명하는 HTTP 액세스 제어 에 대한 훌륭한 글이 있습니다. 문서에 따르면 "사이트 간 XMLHttpRequest를 지원하는 브라우저에서 작동"해야합니다. 그러나 현대 브라우저 만 도메인 간 POST를 허용 한다고 생각하기 때문에 이것은 약간 오해의 소지가 있습니다. 나는 이것이 사파리, 크롬, FF 3.6에서만 작동하는지 확인했습니다.
이 작업을 수행하는 경우 다음 사항에 유의하십시오.
출처 : https://stackoverflow.com/questions/298745/how-do-i-send-a-cross-domain-post-request-via-javascript
'프로그래밍 언어 > HTML,CSS,JS' 카테고리의 다른 글
node.js를 사용하여 JSON을 예쁘게 출력하는 방법 (0) | 2021.11.01 |
---|---|
JavaScript 날짜를 UTC로 변환하는 방법 (0) | 2021.10.27 |
JavaScript 객체에 key / value 쌍을 생성 하는 방법 (0) | 2021.10.26 |
Javascript Date 객체를 복제하는 방법 (0) | 2021.10.26 |
React.js의 배열 자식에 대한 고유 키 이해 (0) | 2021.10.25 |