Javascript 使用$http选项代替post
我向服务器api发出Javascript 使用$http选项代替post,javascript,angularjs,api,http,post,Javascript,Angularjs,Api,Http,Post,我向服务器api发出$HTTPPOST请求,但请求方法更改为选项。 我用localhost来完成这一切。所以我通过邮递员提出了同样的要求,一切都顺利 服务: function httpReg(userData) { console.log(userData) return $http({ method: 'POST', url: CONFIG.APIHost + '/auth/sign
$HTTPPOST
请求,但请求方法更改为选项
。
我用localhost来完成这一切。所以我通过邮递员提出了同样的要求,一切都顺利
服务:
function httpReg(userData) {
console.log(userData)
return $http({
method: 'POST',
url: CONFIG.APIHost + '/auth/signup',
data: {
"username": userData.username,
"email":userData.email,
"password": userData.password
},
headers: {
'Content-Type': 'application/json; charset=utf-8'
}
});
}
截图:
(来源:)是的,看起来像是cors问题 请尝试以下操作之一:
app.config(['$httpProvider', function ($httpProvider) {
//Reset headers to avoid OPTIONS request (aka preflight)
$httpProvider.defaults.headers.common = {};
$httpProvider.defaults.headers.post = {};
$httpProvider.defaults.headers.put = {};
$httpProvider.defaults.headers.patch = {};
}]);
x-auth*
设置参考资料:实际上,您的
飞行前
请求已被退回
如果浏览器不信任您正在访问的数据源,则浏览器首先向该服务器发送飞行前
请求,如果返回200OK
,则浏览器将发送您的原始请求
仅适用于浏览器,其他工具(如postman
dosen)不发送和预飞请求,因此您的代码可能会正常工作
如何解决这个问题
- 将已接受选项的标题
添加到请求的资源中GET、POST、options、PUT
CONFIG.APIHost
是另一台服务器,则它可能试图启动$http
或angular或javascript都与此无关。浏览器对跨源请求执行此操作。端点需要是CORS enabledCONFIG.APIHost是一个不同的服务器CORS请求并不简单,需要一个选项预飞行。如果您的服务器不支持上述预飞行,则浏览器将拒绝该请求。修复服务器。