我正在尝试使用axios对ubuntu vps(django后端)上的端点执行发布请求。 api响应成功发布请求后创建的201。使用Postman,我能够执行成功的发布请求,但是当我使用Axios进行尝试时,我可以看到控制台中有异常(我使用过console.log)。
以下是我通过Axios的方式:
.
.
.
axios.defaults.xsrfCookieName = 'csrftoken'
axios.defaults.xsrfHeaderName = 'X-CSRFToken'
// Tried without headers as well
var headers = {'Content-Type': 'application/x-www-form-urlencoded'}
axios.post('http://127.0.0.1:8000/api/v1/subscribe/',data_str,headers)
.then(function(response) {
console.log('saved successfully');
// this.isHidden = false;
alert("Subscription succesful !!");
console.log(response)
}).catch((error) =>{
if(error.response){
console.log('1..........Response Error');
console.log(error.response.data);
console.log(error.response.status);
console.log(error.response.headers);
}
else if(error.request){
// This part gets printed in the browser console. No idea why
console.log('2..........Request Error');
console.log(error.request);
}
else{
console.log('3..........Other error');
console.log('Error', error.message);
}
console.log(error.config);
} );
var headers = {'Content-Type': 'application/x-www-form-urlencoded'}
axios.post('http://127.0.0.1:8000/api/v1/subscribe/',data_str,headers)
.then(function(response) {
console.log('saved successfully');
// this.isHidden = false;
alert("Subscription succesful !!");
console.log(response)
}).catch((error) =>{
if(error.response){
console.log('1..........Response Error');
console.log(error.response.data);
console.log(error.response.status);
console.log(error.response.headers);
}
else if(error.request){
console.log('2..........Request Error');
console.log(error.request);
}
else{
console.log('3..........Other error');
console.log('Error', error.message);
}
console.log(error.config);
} );
**我的django休息api中很少有CORS配置:
CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_CREDENTIALS = True
CORS_ALLOW_METHODS = ['DELETE','GET','OPTIONS','PATCH','POST','PUT',]
CORS_ALLOW_HEADERS = ['*']
这是控制台This is the console log in browser
中错误的图片如果有人帮忙,我感激不尽。
提前致谢!
答案 0 :(得分:0)
感谢您的投入。
我解决了这个问题。执行POST请求的URL为http://localhost:8000/api/v1/subscribe
,替换为http://my website.com/api/v1/subscribe
后成功运行。
我使用的是实际网址:
邮递员中的http://my website.com/api/v1/subscribe
,以及它成功的原因。在vue我使用的本地主机不断出错。 ☺️