nuxt 에서 referrer / nuxt client 에서 referer / nuxtjs referrer / no referer / no referrer
Nuxtjs 에서 client 에서 request 를 보낼때 referrer 를 보내지 않는 방법
서버쪽으로 보내는 모든 request 에 referrer 가 기본적으로 붙어서 간다.
- ajax call 에 의해 request 를 보내는 경우
- tag 에 의해 request 를 보내야 하는 경우(
<script>
,<img>
등)
ajax call 에서 referrer 삭제
ajax call 에 의해 request 를 보내는 경우는 간단하다. 만약 fetch
함수를 쓴다고 하면 아래처럼 option 에 referrer 에 대한 설정을 주면 된다.
const res = await fetch(url, {
method: "GET", // POST, PUT, DELETE, etc.
headers: {
"Content-Type": "text/plain;charset=UTF-8",
...
},
referrer: "about:client", // or "" to send no Referer header,
// or an url from the current origin
referrerPolicy: "no-referrer-when-downgrade", // no-referrer, origin, same-origin...
...
});
tag 에 의한 request 에서 referrer 를 삭제
이건 몇번의 테스트를 해봤다. nuxtjs 2.15.7 버전에서 테스트했다.
결과적으로 nuxt.config.js
에 meta tag 를 삽입해서 referrer 를 전송하지 않도록 했다.
nuxt.config.js
에 meta tag 를 삽입
이 방법으로 해결했다. 이 방법의 문제는 전 page 에서 보내지 않는다는 것이다. 그것만 빼면 큰 문제는 없어 보인다.
다른 실패한 방법들은 아래에 적었다.
// nuxt.config.js
export default {
...
head: {
...
meta: [
{ charset: 'utf-8' },
{
name: 'referrer',
content: 'no-referrer'
}
],
link: [
{ rel: 'stylesheet', href: '/css/daterangepicker.css' },
...
],
script: [
{ src: '/js/jquery-3.5.1.slim.min.js' },
...
],
},
...
}
실패한 방법 2가지
.vue
component 에 넣는 방법 :
다음 처럼 개별 nuxt page 에 meta tag 를 추가할 수 있다. meta tag 는 삽입되긴 하지만, 실제로 referrer 는 계속 붙어서 날아갔다. 이때도
export default {
...
/*
** Headers of the page
** See https://nuxtjs.org/api/configuration-head
*/
head: {
title: process.env.npm_package_name || '',
meta: [
...
{
name: 'referrer',
content: 'no-referrer'
}
],
...
},
...
}
template 안에 tag 에 넣는 방법:
이 방법은 안됐다. referrerpolicy attribute 가 동작하지 않았다. 계속 referrer 가 header 에 같이 붙어서 갔다.
<template>
...
<img :src="screenImageUrl" referrerpolicy="no-referrer">
...
</template>
<script>
...
export default {
head: {
meta: [
{
name: 'referrer',
content: 'no-referrer'
}
],
},
...
</script>
<style>
...
</style>
댓글 없음:
댓글 쓰기