Angularjs angular http.post已发送PHPSESSID cookie。。。但它没有被送回
我对AngularJS(不是版本2)相当陌生,我有一个单页应用程序,可以在SiteX上调用(发布)PHP脚本,并显示数据。我使用的是AngularJSV1.5.7,没有使用其他任何东西(如引导) 工作正常。我使用jquery.ajax向它添加了身份验证,这很好。然后我意识到,将JQuery.ajax()与Angular一起使用可能不是最好的方法,但在尝试删除.ajax()调用并用$http替换它时遇到了问题 我可以从调试器(例如Chrome)中看到,当我进行身份验证调用时,PHPSESSID cookie不会发送到服务器。在服务器上调试确认了这一点。我看到来自服务器的正确回复,并且包含cookie 我处理回复,JavaScript去获取我的数据。。。。但是我们没有将PHPSESSID cookie发送到服务器,所以它失败了 如果我使用JQuery ajax()发送了身份验证POST(其他所有调用都使用$http),那么就可以了,因此它必须与身份验证的$http.POST相关 以下是片段:Angularjs angular http.post已发送PHPSESSID cookie。。。但它没有被送回,angularjs,angular-cookies,Angularjs,Angular Cookies,我对AngularJS(不是版本2)相当陌生,我有一个单页应用程序,可以在SiteX上调用(发布)PHP脚本,并显示数据。我使用的是AngularJSV1.5.7,没有使用其他任何东西(如引导) 工作正常。我使用jquery.ajax向它添加了身份验证,这很好。然后我意识到,将JQuery.ajax()与Angular一起使用可能不是最好的方法,但在尝试删除.ajax()调用并用$http替换它时遇到了问题 我可以从调试器(例如Chrome)中看到,当我进行身份验证调用时,PHPSESSID c
myAPI.authenticate = function(user, pass) {
return $http({
method: "POST",
url: "authenticate.php",
withCredentials: true,
data: "authReq=&userid="+user+"&passwd="+pass,
})
}
我也试过:
var app=angular.module('myApp.controllers', [])
app.config(['$httpProvider', function($httpProvider) {
$httpProvider.defaults.withCredentials = true;
}]);
我看到了很多关于使用withCredentials:true的评论,并尝试在请求和配置中设置$httpProvider.default.withCredentials为true。大部分内容都是关于CORS的,但在本例中,所有请求都指向同一服务器上完全相同的页面,因此它与跨源无关
我错过了什么?这一定与Angular框架有关,因为它与执行身份验证的JQuery(以及用于随后检索数据的$http)配合使用时工作正常
谢谢
Monathan$http.post(url、数据、配置);数据是一个json对象,其中包含您试图作为url参数传递的内容$http.post(url、数据、配置)返回一个承诺。谢谢,yBrodsky。我做了这些改变,它使我能够在逻辑中找到一个稍微低一点的问题。