programing

Ajax POST의 레퍼러 변경

css3 2023. 8. 18. 22:51

Ajax POST의 레퍼러 변경

jquery 또는 general javascript를 사용하여 http ajax 호출의 헤더에서 레퍼러를 변경할 수 있는지 아는 사람?

기본적으로 나는 그것이 나의 페이지에서 보내지기를 원하지만 다른 페이지에서 레퍼러를 가지고 있습니다.어떤 정보라도 좋습니다.

브라우저는 내가 수행한 테스트에 대해 항상 레퍼러를 덮어씁니다.즉, Ajax 호출의 레퍼러를 변경할 수 없습니다.

사용할 수 있습니다..setRequestHeader( 'referer', 'foo' )하지만 브라우저가 그것을 적절한 것으로 대체할지는 잘 모르겠습니다.

jQuery를 통해.ajax()method는 헤더도 허용합니다..get()그리고..post()하지 마)

교차 도메인 AJAX를 수행할 수 없기 때문에 이 작업을 수행하는 것은 거의 의미가 없으며, 이 작업을 시도하는 것조차 일부 브라우저에서 XHR 보안 규칙을 트리거하여 요청을 완전히 중지할 수 있습니다.

언제든지 사용할 수 있습니다.

jQuery.ajaxSetup({
    'beforeSend': function(xhr) {xhr.setRequestHeader("header key", "header value")}
})

그러나 물론 브라우저는 레퍼러 헤더에 대해 다른 의견을 가질 수 있습니다.이것은 테스트되어야 합니다 :)

jQuery에서는 할 수 없지만 fetch에서는 할 수 있습니다.

교차 도메인 요청에 사용할 수 있을지는 확실하지 않지만(분명히 최소한 CORS 권한이 필요할 것입니다) 이 예제와 같이 동일한 도메인 + 다른 페이지에 사용할 수 있습니다.

fetch("http://example.com",{"referrer":"http://example.com/inbox","body":"{\"format\":\"root\"}","method":"POST"});

언급URL : https://stackoverflow.com/questions/8231366/changing-the-referrer-of-an-ajax-post