programing

자바스크립트 교차 도메인 호출: HTTP에서 HTTPS로 호출

sourcejob 2023. 9. 26. 22:19
반응형

자바스크립트 교차 도메인 호출: HTTP에서 HTTPS로 호출

같은 도메인의 보안(HTTP) URL로 비동기 호출을 해야 합니다.

현재 페이지는 일반 HTTP(비보안)로 작업 중입니다.

즉, 동일한 도메인에서 URL을 호출하지만 HTTPS를 사용하는 것입니다.

이 호출을 HTTPS로 전환하기 전에 교차 도메인 AJAX 호출을 허용하는 서버측 프록시 구현을 종료했지만, HTTP와 HTTPS도 서로 다른 오리진으로 간주되기 때문에 지금은 동일한 오리진 정책에 직면해 있습니다.그래서 이 프록시는 사용할 수 없습니다.

요약: 이 시나리오에서 크로스 도메인, 비동기 POST 요청을 어떻게 수행합니까?

다양한 참고 사항:

  • 저는 JSONP를 제안하는 어떤 답변도 받아들일 수 없었습니다.비동기 호출은 POST 동사를 사용해야 합니다.
  • 저는 jQuery의 최신 버전을 사용하고 있습니다.답변은 이 라이브러리 또는 이 문제를 해결하는 다른 방법에 근거할 수 있습니다.
  • HTTPS를 통해 전체 페이지에 액세스하는 것은 해결책이 아닙니다.
  • 서버 플랫폼은 마이크로소프트 입니다.NET 4.0 (ASP).NET 4.0).
  • 코르스는 선택의 여지가 없습니다.현대 브라우저에서는 이를 폭넓게 지원하지 않습니다.

우선 @missingo와 @PiTheNumber의 질문이 모두 +1입니다.

많은 시간을 보낸 후에, 저는 전체 페이지를 HTTPS로 바꿀 것이라는 결론에 도달했습니다.그 이유는:

  • 대부분의 최신 브라우저는 CORS를 지원하지만, 8번째 버전부터 Internet Explorer(인터넷 익스플로러)에는 독점 구현(XDomainRequest 개체)이 있어 일부 컴퓨터에서는 사용하지 않을 수 있습니다(인터넷 보안 영역에서 도메인 간 요청이 기본적으로 사용 안 함).

    • 오페라는 CORS를 지원하지 않습니다. 12번째 버전이 지원하지만 사용자가 이 새 버전을 먼저 채택해야 하고 이틀 안에 채택할 수 없기 때문에 선택 사항이 아닙니다.

    • 웹 클라이언트 어플리케이션은 다른 도메인에 위치한 RESTful 서비스 레이어를 요청해야 하므로 도메인 간 요청을 해야 합니다.말도 안돼.

    • 모든 것을 HTTPS로 전환하면 서비스 계층 프록시 접근 방식이 다시 작동합니다(예상되는 동작입니다).

어쨌든 감사합니다. 두 답변 모두 이러한 결론에 도달하는 데 많은 도움이 되었습니다.

갱신하다

@샘은 누구에게나 흥미로울 수 있는 말을 덧붙였습니다.Internet Explorer 8 및 9에서 CORS를 얻는 방법(#7 참조): http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx

Access-Control-Allow-Origin을 사용하고 있습니다.당신은 헤더만 보내면 됩니다.

AJAX, 하위 도메인 SSL도 참조

HTTPS를 통해 전체 페이지에 액세스하는 것을 재고해야 합니다. 그렇지 않으면 최소한 이것이 불가능한지 확실히 해야 합니다.

HTTP를 통해 초기 페이지와 스크립트를 로드함으로써 사용자는 스크립트가 원래 전송하려고 했던 스크립트라는 보안 보장이 없으며 제3자(예: 암호 키로깅)가 조작하지 않습니다.즉, SOP를 우회하는 HTTPS 요청은 원래 HTTPS를 통해 제공되는 페이지의 HTTPS 요청과 동일한 보안 보장을 제공하지 않습니다.

누가 본 적이 있습니까?

https://github.com/jpillora/xdomain

포스트 메시지와 iframes를 사용하여 cors 요청을 달성하고 크로스 브라우저입니다(IE에서 XDomain Requests를 이를 악물 필요가 없습니다).

아마도 그것이 크로스 프로토콜 cors 요청을 허용할 것입니까?

언급URL : https://stackoverflow.com/questions/8414786/javascript-cross-domain-call-call-from-http-to-https

반응형