从POSTMAN成功后,通过Axios发布请求失败。怎么样?

时间:2018-06-02 03:54:08

标签: javascript django vue.js postman axios

我正在尝试使用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

中错误的图片

如果有人帮忙,我感激不尽。

提前致谢!

1 个答案:

答案 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我使用的本地主机不断出错。 ☺️