Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs angular http.post已发送PHPSESSID cookie。。。但它没有被送回_Angularjs_Angular Cookies - Fatal编程技术网

Angularjs angular http.post已发送PHPSESSID cookie。。。但它没有被送回

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

我对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相关

以下是片段:

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。我做了这些改变,它使我能够在逻辑中找到一个稍微低一点的问题。