在第一次请求完成后提出第二次请求,csrf Django问题
我有一个在第一次请求完成后提出第二次请求,csrf Django问题,django,ajax,redux,csrf,Django,Ajax,Redux,Csrf,我有一个Redux应用程序,还有一个组件SalaryComponent,在它的构造函数中,我调用一个动作创建者,该创建者向服务器发出请求,然后调度执行一个动作,因此状态被更新。我需要在第一个请求完成后向服务器发出第二个请求,因为我需要从第一个请求获取一些数据来执行第二个请求。你将如何处理这个问题 更新 我能够在构造函数中调用第二个ajax,如下所示: props.loadSalary(salary_id).then(() => { props.loadData(salary_i
Redux
应用程序,还有一个组件SalaryComponent
,在它的构造函数中,我调用一个动作创建者
,该创建者向服务器发出请求,然后调度
执行一个动作,因此状态被更新。我需要在第一个请求完成后向服务器发出第二个请求,因为我需要从第一个请求获取一些数据来执行第二个请求。你将如何处理这个问题
更新
我能够在构造函数中调用第二个ajax
,如下所示:
props.loadSalary(salary_id).then(() => {
props.loadData(salary_id)
})
我验证了loadData
正确地获取了它的参数salary\u id
。但是我得到了错误禁止(CSRF令牌丢失或不正确)。
。第一个请求不会导致CSRF
错误,但第二个请求会以某种方式导致错误。第一个请求是GET
,第二个请求是POST
最终,我通过在Django
端使用@csrf_-emption
作为装饰器来解决了这个问题,我正在使用这个方法来处理第二个请求。另一种方法是在浏览器中获取CSRF
令牌,并在后端使用它。所有POST请求都需要您的CSRF令牌。听起来您需要在Redux会话中存储CSRF cookie值,以便进行链接调用,这不是一个安全问题吗?Idk,只是问问而已。这里的安全非常重要。如果您认为可以,我如何获取CSRF并存储它?后端是Django,它在GET和POST的方法级别上没有区别,所以我认为实际上没有区别。CSRF令牌在浏览器中可用。(在Chrome>应用程序面板中)这将在CSRF所在的位置提供您的本地cookie。所以不,这不是真正的安全问题。该值用于确保它在服务器上匹配。它只是确保发出请求的人是客户端,服务器也发送了数据(令牌必须匹配)好的,明白了。非常感谢。所有POST请求都需要您的CSRF令牌。听起来您需要在Redux会话中存储CSRF cookie值,以便进行链接调用,这不是一个安全问题吗?Idk,只是问问而已。这里的安全非常重要。如果您认为可以,我如何获取CSRF并存储它?后端是Django,它在GET和POST的方法级别上没有区别,所以我认为实际上没有区别。CSRF令牌在浏览器中可用。(在Chrome>应用程序面板中)这将在CSRF所在的位置提供您的本地cookie。所以不,这不是真正的安全问题。该值用于确保它在服务器上匹配。它只是确保发出请求的人是客户端,服务器也发送了数据(令牌必须匹配)好的,明白了。非常感谢。