Javascript django ajax对同一站点路径的请求失败,出现403错误
My site()有一个按钮,单击该按钮时调用javascript函数,该函数向路径/My ajax test/发出ajax post请求,该路径应该调用python函数并返回一些数据。它在过去工作得很好,但突然停止了工作,我正在尝试调试它以找出原因 按下按钮时调用的ajax post请求如下所示:Javascript django ajax对同一站点路径的请求失败,出现403错误,javascript,ajax,google-chrome,post,cookies,Javascript,Ajax,Google Chrome,Post,Cookies,My site()有一个按钮,单击该按钮时调用javascript函数,该函数向路径/My ajax test/发出ajax post请求,该路径应该调用python函数并返回一些数据。它在过去工作得很好,但突然停止了工作,我正在尝试调试它以找出原因 按下按钮时调用的ajax post请求如下所示: function makeAjax(dataVar, csrftoken) { return new Promise(function (resolve, reject) { console
function makeAjax(dataVar, csrftoken) {
return new Promise(function (resolve, reject) {
console.log("making ajax reqeust to get data. header set")
$.ajax({
type: "POST",
url: '/my-ajax-test/',
headers: { 'ACookieAvailableCrossSite': 'SameSite=None' },
data: { csrfmiddlewaretoken: csrftoken, data: dataVar },
}).done(function callback(response) {
console.log("ajax request to /my-ajax-test/ was a success !")
console.log("response = ", response)
resolve(JSON.stringify(response))
}).fail(function (error) {
console.log("ajax request to /my-ajax-test/ failed!");
console.log(error)
});
});
}
当我按下此按钮时,控制台中出现403错误,如下所示:
我正在本地运行我的站点以进行测试,在我将更改推送到其托管的在线位置(heroku)之前,我在控制台中获得了这个弹出窗口,我正在尝试修复它:
谷歌的两个错误来自我试图设置adsense,但之前没有影响我的post请求,我打印了我的错误,但我没有看到任何有助于我调试的东西。我的ajax post请求中是否缺少修复chrome错误的标题
A cookie associated with a cross-site resource at http://youtube.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
thx我用这个替换了这个功能,它工作了:
函数makeAjax(dataVar、csrftoken){
返回新承诺(功能(解决、拒绝){
log(“生成ajax请求以获取数据。标题集”)
$.ajax({
类型:“POST”,
url:“/my ajax test/”,
标题:{'ACookieAvailableCrossSite':'SameSite=None'},
数据:{csrfmiddlewaretoken:'RQ',数据:dataVar},//新的csrf
}).done(函数回调(响应){
log(“对/my ajax test/的ajax请求成功了!”)
console.log(“response=”,response)
解析(JSON.stringify(响应))
}).失败(功能(错误){
log(“对/my ajax test/的ajax请求失败!”);
console.log(错误)
});
});
}