http 페이지에서 https 사용 Ajax
내 사이트는 http 및 https 프로토콜을 사용하므로 콘텐츠에는 영향을 주지 않습니다.제 사이트에서는 jQuery ajax 콜을 사용하고 있습니다.이 콜은 페이지의 일부 영역도 채웁니다.
이제 https를 통해 모든 Ajax 콜을 수행합니다.(이유는 묻지 말아주세요:)https 프로토콜을 사용하여 페이지를 표시하면 ajax 요청이 작동합니다.http protocol을 사용하여 페이지를 표시하면 javascript 오류가 나타납니다.제한된 URI에 대한 액세스가 거부되었습니다.
이것은 크로스 도메인 문제(사실 크로스 프로토콜 문제)이며, 현재 페이지에서와 같은 프로토콜을 ajax 호출에서 사용해야 한다는 것을 알고 있습니다.
단, 모든 Ajax 콜을 https로 하고 http 경유로 서비스된 페이지에서 호출합니다.이를 위한 회피책(일부 json/proxy 솔루션)이 있습니까?아니면 단순히 불가능한 것입니까?
서버에서 Access-Control-Allow-Origin 헤더를 추가합니다.
Access-Control-Allow-Origin: https://www.mysite.com
http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing
JSONP를 사용해 보세요.
대부분의 JS 라이브러리는 다른 AJAX 호출과 마찬가지로 쉽게 만들지만 내부적으로 iframe을 사용하여 쿼리를 수행합니다.
페이로드에 JSON을 사용하지 않을 경우 iframe을 중심으로 자체 메커니즘을 롤링해야 합니다.
개인적으로는 http:// 페이지에서 https:// 페이지로 리다이렉트 합니다.
http://example.com/ 는, https://example.com/ 와는 다른 VirtualHost 로 해결할 수 있습니다(Host 헤더는 송신되지 않기 때문에, 그 IP 의 디폴트에 응답합니다).따라서, 2 개의 도메인으로 취급되기 때문에, 크로스 도메인 JS 의 제약이 적용됩니다.
JSON 콜백으로 이 문제를 회피할 수 있습니다.
Opensource Forge 프로젝트를 확인합니다.실제 도메인 간 요청을 처리하기 위한 일부 플래시와 함께 JavaScript TLS 구현 기능을 제공합니다.
http://github.com/digitalbazaar/forge/blob/master/README
즉, Forge를 사용하면 http를 통해 https 사이트로 로드된 웹 페이지에서 XmlHttpRequests를 만들 수 있습니다.교차 도메인 요청을 활성화하려면 서버를 통해 플래시 교차 도메인 정책 파일을 제공해야 합니다.README 의 마지막에 있는 블로그의 투고를 참조해 주세요.구조에 대한 자세한 설명을 참조해 주세요.
단, Forge는 2개의 다른https 도메인 간의 요구에 적합합니다.그 이유는 잠재적인 MiTM 공격이 있기 때문입니다.안전하지 않은 사이트에서 JavaScript 및 플래시를 로드하면 손상될 수 있습니다.가장 안전한 용도는 안전한 사이트에서 로드한 후 다른 사이트에 액세스하는 것입니다(보안 또는 기타).
iframe에 https 페이지를 로드하여 모든 Ajax 요구를 어떤 브릿지를 경유하여 프레임에 송수신 할 수 있습니다.해킹어라운드이지만 동작하는 경우가 있습니다(시큐어 콘텍스트에서 같은 액세스 제한을 부과할지는 확실하지 않습니다).그렇지 않으면 (다른 크로스 도메인콜과 마찬가지로) 요구를 재루팅하는 로컬http 프록시가 허용 솔루션이 됩니다.
제가 하는 일은 다음과 같습니다.
투고할 데이터로 숨겨진 iFrame을 생성합니다.그 iFrame을 아직 제어하고 있기 때문에, 같은 발신기지에는 적용되지 않습니다.그런 다음 iFrame의 양식을 ssl 페이지로 제출합니다.그런 다음 ssl 페이지는 상태 메시지가 포함된 비SSL 페이지로 리디렉션됩니다.iFrame에 액세스 할 수 있습니다.
언급URL : https://stackoverflow.com/questions/1105934/ajax-using-https-on-an-http-page
'programing' 카테고리의 다른 글
Redux와 Redux-Toolkit 중 어느 쪽을 사용해야 합니까? (0) | 2023.03.07 |
---|---|
Null 값으로 열 업데이트 (0) | 2023.03.07 |
링크 rel="pingback"의 목적은 무엇입니까? (0) | 2023.03.07 |
ID별 사용자 정의 분류법 링크 (0) | 2023.03.07 |
오류 'document'가 정의되지 않았습니다. eslint / React (0) | 2023.03.07 |