찾다

 >  Q&A  >  본문

javascript - jquery의 $.post()가 도메인 간에 데이터를 제출할 수 없는 이유는 무엇입니까?

제목처럼 jquery에 캡슐화된 ajax 메소드가 get 메소드에서 데이터를 제출하기 위해 jsonp를 사용할 수 있는데, 도메인 간에 데이터를 제출하기 위해 post 메소드를 직접 사용할 수 있는 이유는 무엇입니까?

習慣沉默習慣沉默2753일 전616

모든 응답(3)나는 대답할 것이다

  • 世界只因有你

    世界只因有你2017-05-16 13:38:50

    jquery 자체 기능은 지원하지 않지만, jquery를 기반으로 크로스 도메인 게시물을 구현할 수 있습니다.

    jquery 자체는 jsonp 크로스 도메인만 지원하지만 jsonp의 원칙은 get만 지원하도록 제한합니다.

    네이티브 jquery 크로스 도메인을 구현하려면 요청 주소 헤드에 Access-Control-Allow-Origin을 추가하고 API를 호출하는 도메인 이름(또는 *)으로 값을 설정하세요

    회신하다
    0
  • 仅有的幸福

    仅有的幸福2017-05-16 13:38:50

    교차 도메인은 일반적으로 두 가지 유형으로 나뉩니다.

    1. jsonp 크로스 도메인. jsonp는 원래 get file 메소드를 사용하여 도메인 간 검사를 우회하므로 게시를 지원하지 않습니다. 게시 요청을 시뮬레이션하기 위해 get을 사용하는 타사 라이브러리도 있습니다.

    2. COR 크로스 도메인. COR 교차 도메인은 서버측 Access-Control-Allow-Origin 응답을 수정해야 합니다. 일반적으로 클라이언트는 두 개의 게시 요청을 보냅니다. 첫 번째는 서버가 권한으로 응답한 후 두 번째는 데이터와 함께 실제 요청을 보냅니다.
      응답자의 조건이 허락한다면 직접 게시물을 지원할 수 있는 두 번째 크로스 도메인 방식을 사용해 보세요.

    서버 구성을 수정할 수 없는 경우 응답자는 타사 라이브러리를 찾아 jsonp를 사용하여 게시 요청을 시뮬레이션할 수 있는지 확인할 수 있습니다.

    회신하다
    0
  • 阿神

    阿神2017-05-16 13:38:50

    jquery가 지원하지 않는 것이 아니라 크로스 도메인 헤더를 허용하지 않을 때 브라우저가 응답을 가로채서 오류를 표시한다는 점에 유의하세요. jquery는 이 오류를 수신한 후 교차 도메인 오류를 사용자에게 보고합니다.
    패킷을 잡고 살펴볼 수 있습니다(패킷을 캡처하기 위해 브라우저의 f12를 사용하지 않도록 주의하세요). 실제로 서버의 응답이 거기에 있습니다.

    회신하다
    0
  • 취소회신하다