JavaScript를 통한 비동기 크로스 도메인 사후 요청?
-
19-08-2019 - |
문제
양식을 작성하고 어떤 사이트에 대한 게시물 요청을 수행하는 데 사용할 수 있습니다. 양식 방법은 비동기식이 아니므로 페이지가로드를 완료 한시기를 알아야합니다. 나는 내부에 형태가있는 iframe을 사용하여 이것으로 엉망이되었지만 성공하지 못했습니다.
어떤 아이디어?
편집하다
불행히도 응답 데이터를 제어 할 수 없으며 XML, JSON에서 간단한 텍스트에 이르기까지 다릅니다.
해결책
당신은 캡처 할 수 있습니다 onload
이벤트 iframe
. 당신의 대상 form
iframe에게 onload를 듣습니다. 하지만 Iframe의 내용에 액세스 할 수는 없습니다.
다음과 같은 것을 시도하십시오.
<iframe id='RS' name='RS' src='about:blank' onload='loaded()'></iframe>
<form action='wherever.php' target='RS' method='POST'>...</form>
스크립트 블록 :
var loadComplete = 0
function loaded() {
//avoid first onload
if(loadComplete==0) {
loadComplete=1
return()
}
alert("form has loaded")
}
다른 팁
크로스 도메인 요청을하려면 JSON 호출을하거나 서버 사이드 프록시를 사용해야합니다. 서버 사이드 프록시는 설정하기 쉽고 사람들이 왜 그렇게 피하는지 확실하지 않습니다. 사람들이 프록시를 사용하여 다른 것을 요청할 수 없도록 규칙을 설정하십시오.
크로스 도메인 게시물에서 반환 된 데이터가 JSON 인 경우 데이터를 반환하는 URI를 가리키는 스크립트 태그를 동적으로 추가 할 수 있습니다. 브라우저는 해당 "스크립트"를로드하여 다른 JavaScript에서 액세스 할 수 있습니다.
JavaScript를 사용하여 크로스 도메인을 할 수 없습니다. PHP 또는 ASP와 같은 백엔드 언어를 사용해야합니다.
제휴하지 않습니다 StackOverflow