VueJs 和 VueResource,从 Ajax 请求中删除 header 字段
VueJs and VueResource, removing header fields from a Ajax request
当我实例化 Vuejs (2.2.6) 和 Vue-resource (1.2.1) 时,我设置了header 使用以下代码授权,这样我就可以授权对我的 API:
的所有请求
Vue.http.headers.common.AUTHORIZATION = 'BEARER ...';
但是我想请求第三方API,不想发送Authorization
字段。此外,此 API 不允许您使用此授权 header。
let CEP = '';
this.$http.get('https://viacep.com.br/ws/' + CEP + '/json')
.then(response => {
console.log(response.headers);
});
这样授权字段在 Access-Control-Request-Headers:
上与 header 一起发送
我尝试使用以下代码删除一些 header 字段,但没有成功。
this.$http.headers.common.AUTHORIZATION = null;
this.$http.headers.common['Access-Control-Allow-Headers'] = null;
this.$http.get('https://viacep.com.br/ws/' + CEP + '/json')
.then(response => {
console.log(response.headers);
});
在 vue-resource
文档中,可以插入 object 来强制请求配置,但文档不完整。
this.$http.get('https://viacep.com.br/ws/' + CEP + '/json', {
...here...
}).then(response => {
console.log(response.headers);
});
有什么方法可以从给定请求中删除 Authorization 字段或任何其他字段?
谢谢。
* 已更新 *
通过使用拦截器(如以下示例所示)我可以编辑 请求但我无法删除 特定字段。
Vue.http.interceptors.push((request, next) => {
const viacep = request.url.includes('viacep.com.br');
if (viacep) {
request.headers.set('AUTHORIZATION', 'TRY THIS');
}
next(response => {});
});
尝试删除:
Vue.http.interceptors.push((request, next) => {
const viacep = request.url.includes('viacep.com.br');
if (viacep) {
request.headers.delete('AUTHORIZATION');
}
next(response => {});
});
使用 interceptor,检查请求,并在需要时删除 header。
Vue.http.interceptors.push(function(request, next) {
const removeAuthHeaders = request.url.includes("viacep.com.br");
if (removeAuthHeaders){
request.headers.delete('Access-Control-Allow-Headers')
request.headers.delete('AUTHORIZATION')
}
else {
request.headers.set('Access-Control-Allow-Headers', <value>)
request.headers.set('AUTHORIZATION', <value>)
}
next();
});
当我实例化 Vuejs (2.2.6) 和 Vue-resource (1.2.1) 时,我设置了header 使用以下代码授权,这样我就可以授权对我的 API:
的所有请求Vue.http.headers.common.AUTHORIZATION = 'BEARER ...';
但是我想请求第三方API,不想发送Authorization
字段。此外,此 API 不允许您使用此授权 header。
let CEP = '';
this.$http.get('https://viacep.com.br/ws/' + CEP + '/json')
.then(response => {
console.log(response.headers);
});
这样授权字段在 Access-Control-Request-Headers:
上与 header 一起发送我尝试使用以下代码删除一些 header 字段,但没有成功。
this.$http.headers.common.AUTHORIZATION = null;
this.$http.headers.common['Access-Control-Allow-Headers'] = null;
this.$http.get('https://viacep.com.br/ws/' + CEP + '/json')
.then(response => {
console.log(response.headers);
});
在 vue-resource
文档中,可以插入 object 来强制请求配置,但文档不完整。
this.$http.get('https://viacep.com.br/ws/' + CEP + '/json', {
...here...
}).then(response => {
console.log(response.headers);
});
有什么方法可以从给定请求中删除 Authorization 字段或任何其他字段?
谢谢。
* 已更新 *
通过使用拦截器(如以下示例所示)我可以编辑 请求但我无法删除 特定字段。
Vue.http.interceptors.push((request, next) => {
const viacep = request.url.includes('viacep.com.br');
if (viacep) {
request.headers.set('AUTHORIZATION', 'TRY THIS');
}
next(response => {});
});
尝试删除:
Vue.http.interceptors.push((request, next) => {
const viacep = request.url.includes('viacep.com.br');
if (viacep) {
request.headers.delete('AUTHORIZATION');
}
next(response => {});
});
使用 interceptor,检查请求,并在需要时删除 header。
Vue.http.interceptors.push(function(request, next) {
const removeAuthHeaders = request.url.includes("viacep.com.br");
if (removeAuthHeaders){
request.headers.delete('Access-Control-Allow-Headers')
request.headers.delete('AUTHORIZATION')
}
else {
request.headers.set('Access-Control-Allow-Headers', <value>)
request.headers.set('AUTHORIZATION', <value>)
}
next();
});