我想对托管在弹性beantalk上的django服务器发出http请求。我的静态React网站托管在s3存储桶中。我做到了
ALLOWED_HOSTS = ['*']
只是为了看看会发生什么,但这也不起作用。我可以使用以下网址完美登录:
http://mysite-env.randomletters.us-east-1.elasticbeanstalk.com/rest-auth/login/
但是当我想发出获取/发布请求时,它不起作用。我将令牌存储在本地存储中(我知道这很糟糕,但是仅出于测试/懒惰的目的,我这样做只是为了使事情正常进行)。
以下是axios获取请求的示例:
const config = {
headers: {
'Authorization': 'Token ' + localStorage.getItem('token')
}
}
const url = 'http://mysite-env.randomletters.us-east-1.elasticbeanstalk.com/api/inventory/
console.log("url",url)
console.log("token",config)
axios.get(url,config)
.then(res=>{
this.setState({
items: res.data
})
})
控制台确实会打印出令牌:
headers:
Authorization: "Token c1b7661c6ba3252fb3aea1ef9c79aa3412fee7cc"
所以我不确定是什么错误。当我在本地运行它,并使用相同的代码对127.0.0.1:8000进行api调用时,只需替换url,它就可以正常工作。我没有使用任何反向代理,或者什么都不使用,这可能是原因之一?
这是错误日志中的错误:
[Thu May 23 01:05:35.253810 2019] [:error] [pid 14858] Unauthorized: /api/inventory/
[Thu May 23 01:05:37.379138 2019] [:error] [pid 14858] Unauthorized: /api/inventory/
[Thu May 23 01:05:38.094950 2019] [:error] [pid 14858] Unauthorized: /api/inventory/
这是访问日志中的错误:
"GET /api/inventory/ HTTP/1.1" 401 58 "http://mysite-react-sandbox.s3-website-us-east-1.amazonaws.com/inventory" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)