gpt4 book ai didi

javascript - Restangular POST 失败 https ://OPTIONS pass

转载 作者:太空宇宙 更新时间:2023-11-03 13:41:42 24 4
gpt4 key购买 nike

我能够将大部分现有服务转换为使用 Restangular。除了 POST 之外的所有内容都正常工作。

有效的原始POST服务

app.service('APIService', function($http, $q){
...
this.post = function(api, route, params){
var d = $q.defer();
$http({
url : base_urls[api] + route,
method : 'POST',
data : params,
withCredentials: true,
useXDomain : true,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'

}
}).success(function(data){
d.resolve(data);
try{
toastr.success(toastMsg[route].win, 'Success');
} catch(err){}

}).error(function(data){
d.reject(data);
try{
toastr.error(toastMsg[route].fail, 'Whoops');
} catch(err){}

});
return d.promise;
}
});

这样使用:

app.controller('AuthController', function($scope, APIService){
$scope.login = function(username_or_email, password, redirectUrl){
APIService.post('root', '/login', {
'username_or_email' : username_or_email,
'password' : password
}).then(function(r){

if(r.success){
window.location = redirectUrl;
}else
{
// handle this
}
});
};
});

转换为 Restangular

app.controller('AuthController', function ($scope, toastrFactory, Restangular) {
$scope.login = function (username_or_email, password, redirectUrl) {
var login = Restangular.one('auth'),
creds = {
'username_or_email': username_or_email,
'password': password
};


login.post('login', creds).then(function (r) {
window.location = redirectUrl || '/profile';
}, function () {
toastrFactory.error(['Error', 'Login not successful'])
})
};
});

以上未通过飞行前的 OPTIONS 传递,并放弃。我的原始服务和我尝试使用的 Restangular 调用之间有什么区别?

值得注意的是我确实为 Restangular 设置了默认配置参数(以镜像原始服务)

RestangularProvider.setBaseUrl('https://dev.foo.com/');
RestangularProvider.setDefaultHttpFields({
withCredentials: true,
useXDomain : true,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'

}
});

奇怪的是我的 Restangular GET 需要 https://WORK 上的凭据,并成功通过 OPTIONS 阶段,并设法发送 cookie 数据。

感谢任何帮助。谢谢。

最佳答案

我不确定您尝试到达的实际路线,但 Restangular.one('auth') 似乎您需要定义资源标识符(例如。POST/auth/123?username_or_email=moi)。

如果您尝试访问 POST/auth?username_or_email=moi(在 HTTP 参数中使用您的 cred),请尝试 Restangular.all( 'auth').

如果这没有解决问题,请提供您在浏览器的网络检查器中看到的 URI 以及您想要访问的 URI。

关于javascript - Restangular POST 失败 https ://OPTIONS pass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19123929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com