403响应Ionic 4 + Django Api是否位于同一服务器上?

时间:2018-06-28 18:08:13

标签: django ionic-framework

我构建了一个使用Django API REST端点的Ionic 4应用程序。

该应用程序已经使用ionic-app-scripts在iPad和本地主机上进行了测试。

现在,我想将其部署为Web应用程序,并且通过构建用于浏览器平台(ionic cordova构建浏览器--prod --release)并在同一Django应用程序中提供index.html来实现此目的API REST已开启。静态文件(js,资产等托管在Amazon S3存储桶上)

现在在iPad和localhost上,API REST POST请求都没有问题。但是当我在实时服务器上运行该应用程序时(即使请求是从与API REST相同的服务器发送的!),我得到403 ...

比较请求标头时,我看到的唯一区别是在实时服务器上发送的请求标头没有“ Origin”参数:

在线服务器上

Accept  application/json, text/plain, */*
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Cache-Control   no-cache
Connection  keep-alive
Content-Length  62
content-type     application/json
Cookie  _ga=GA1.2.1002502516.149305462…eay6lysy1w44vawa94lug20hpek2n
Host example.com
Pragma  no-cache
Referer http://example.com/front/
User-Agent  Mozilla/5.0 (Macintosh; Intel …) Gecko/20100101 Firefox/60.0

在本地主机上

Accept  application/json, text/plain, */*
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Connection  keep-alive
Content-Length  62
content-type      application/json
Host      example.com
Origin  http://localhost:8100
Referer http://localhost:8100/
User-Agent  Mozilla/5.0 (Macintosh; Intel …) Gecko/20100101 Firefox/60.0

有什么想法吗?我知道有关此主题的问题和帖子很多,但总的来说,问题是相反的(从其他域发送帖子时出现CORS问题)

(显然example.com不是我正在使用的真实域)

1 个答案:

答案 0 :(得分:0)

发现了问题,我安装了Django身份验证系统,并以此登录。当我注销时,它可以正常工作。似乎正在发送带有请求中Cookie的csrf令牌,这引起了冲突。