Skip to content
This repository was archived by the owner on Jul 10, 2019. It is now read-only.

Commit b4c2e94

Browse files
committed
feat: add ua and referer
1 parent 2d01005 commit b4c2e94

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

Diff for: src/pages/example/ajax/custom-http-headers.vue

+18-3
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,33 @@ import axios from 'axios'
1717
import URLSearchParams from '@ungap/url-search-params'
1818
1919
@Component
20-
export default class UserAgent extends Vue {
20+
export default class extends Vue {
2121
data: string = ''
2222
23-
async asyncData({ $axios }) {
23+
async asyncData({ $axios, req }) {
2424
$axios.defaults.headers.post['post-header'] = 'post-header1' // for POST requests
2525
$axios.defaults.headers.common['common-header'] = 'common-header1' // for all requests
2626
2727
const params = new URLSearchParams()
2828
params.append('param1', 'value1')
2929
params.append('param2', 'value2')
3030
31+
const ua = process.server ? req.headers['user-agent'] : navigator.userAgent
32+
const referrer = (() => {
33+
let referer
34+
if (process.server) {
35+
referer = req.headers['referer']
36+
} else {
37+
referer = document.referrer
38+
}
39+
return referer || ''
40+
})()
41+
console.log('ua:', ua)
42+
console.log('referrer:', referrer)
43+
3144
const { data, headers, status, statusText, config } = await $axios.post(
3245
`http://localhost:5000/custom-headers`,
33-
{ hoge: 'hoge' },
46+
{ hoge: 'foo' },
3447
// x-www-form-urlencoded で渡したい場合は Browser と node.js でデータの作り方が変わってきます
3548
// https://github.com/axios/axios#using-applicationx-www-form-urlencoded-format
3649
// https://developer.mozilla.org/ja/docs/Web/HTTP/Methods/POST
@@ -41,6 +54,8 @@ export default class UserAgent extends Vue {
4154
// process.server ? querystring.stringify({ foo: 'bar' }) : params,
4255
{
4356
headers: {
57+
'X-User-Agent': ua,
58+
'X-Referer': referrer,
4459
header1: 'custom1'
4560
}
4661
}

Diff for: tools/server.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ app.use((req, res, next) => {
1616
'Access-Control-Allow-Headers',
1717
// Chrome は OK で、 Firefox と IE11 がダメだったため、
1818
// '*' だと CORS 的に許可されないので、明示的にリクエストヘッダーの key 名を許可しています
19-
'origin, x-requested-with, content-type, accept, post-header, common-header, header1, access-token'
19+
'origin, x-requested-with, content-type, accept, post-header, common-header, header1, access-token, X-User-Agent, X-Referer'
2020
// '*'
2121
)
2222
// https://stackoverflow.com/questions/37897523/axios-get-access-to-response-header-fields

0 commit comments

Comments
 (0)