Javascript 使用模式时:请求无cors,浏览器为’;t添加请求头I’;我已设置了前端代码
在我的React应用程序中,我有以下API帖子,允许用户编辑他们的个人资料(姓名和图像) 上面的问题是带有授权令牌的标头没有在POST中发送 如何获取要在上述获取请求中发送的授权标头 仅供参考,对于非多部分表单,授权令牌成功发送,如下所示:Javascript 使用模式时:请求无cors,浏览器为’;t添加请求头I’;我已设置了前端代码,javascript,reactjs,cors,fetch-api,Javascript,Reactjs,Cors,Fetch Api,在我的React应用程序中,我有以下API帖子,允许用户编辑他们的个人资料(姓名和图像) 上面的问题是带有授权令牌的标头没有在POST中发送 如何获取要在上述获取请求中发送的授权标头 仅供参考,对于非多部分表单,授权令牌成功发送,如下所示: static loadProfile(user_id) { const request = new Request(`http://localhost:4300/api/v1/profiles/${user_id}`, { heade
static loadProfile(user_id) {
const request = new Request(`http://localhost:4300/api/v1/profiles/${user_id}`, {
headers: new Headers({
'Authorization': getBearerToken(),
'Accept' : 'application/json',
'Content-Type' : 'application/json',
})
});
return fetch(request).then(response => {
return response.json();
}).catch(error => {
return error;
});
}
如果您想设置任何特殊的请求头,您不能使用
模式:“no cors”
,因为将其用于请求的效果之一是它告诉浏览器不允许您的前端JavaScript代码设置任何请求头,而不是。见:
要将名称/值(名称/值)对附加到标题
对象(标题),请运行以下步骤:
请求无cors
”且名称/值不是a,则返回return
等同于“返回而不将该头添加到Headers对象”
Authorization
不是授权,因此如果您对请求使用模式:“no cors”
,浏览器将不允许您进行设置。内容类型相同:application/json
如果您尝试使用
模式的原因是:“无cors”
是为了避免在不使用时出现其他问题,那么解决方案是修复其他问题的根本原因。因为一般来说,无论您试图解决什么问题,模式:“no cors”
最终都不会成为解决方案。它只会产生不同的问题,比如你现在遇到的问题。通过使用下面的代码,你可以通过授权或承载来发出获取请求
var url = "https://yourUrl";
var bearer = 'Bearer '+ bearer_token;
fetch(url, {
method: 'GET',
withCredentials: true,
credentials: 'include',
headers: {
'Authorization': bearer,
'X-FP-API-KEY': 'iphone',
'Content-Type': 'application/json'}
}).then((responseJson) => {
var items = JSON.parse(responseJson._bodyInit);
})
.catch(error => this.setState({
isLoading: false,
message: 'Something bad happened ' + error
}));
我是否可以重新启用cors,然后将标题与多部分表单数据一起发送?是的,您应该能够删除
模式:“无cors”
,然后发出请求。如果您这样做时会收到一些不同的错误消息,那么您可能希望更新您的问题,以包括在没有模式的情况下收到的任何其他错误消息:“no cors”
,然后我们可以尝试找到该问题的解决方案。
var url = "https://yourUrl";
var bearer = 'Bearer '+ bearer_token;
fetch(url, {
method: 'GET',
withCredentials: true,
credentials: 'include',
headers: {
'Authorization': bearer,
'X-FP-API-KEY': 'iphone',
'Content-Type': 'application/json'}
}).then((responseJson) => {
var items = JSON.parse(responseJson._bodyInit);
})
.catch(error => this.setState({
isLoading: false,
message: 'Something bad happened ' + error
}));