使用 django 作为离子应用程序的后端时出现 CORS 错误
Posted
技术标签:
【中文标题】使用 django 作为离子应用程序的后端时出现 CORS 错误【英文标题】:CORS-Error when using django as backend for ionic app 【发布时间】:2020-10-09 17:46:20 【问题描述】:我使用 Django Rest Framework 作为 Ionic 应用程序的后端。 我使用 JWT 和邮递员设置了 API,一切正常。 一旦我尝试从我的 Ionic 应用程序进行 API 调用,我就会收到以下错误消息:
错误 1 跨域请求被阻止:同源策略不允许读取位于https://www.mywebsite.com/api/movies 的远程资源。 (原因:根据 CORS 预检响应的标头“Access-Control-Allow-Headers”,标头“密码”是不允许的)。
错误 2 跨域请求被阻止:同源策略不允许读取位于https://www.mywebsite.com/api/movies 的远程资源。 (原因:CORS 请求未成功)。
我在 apache2 网络服务器上运行我的 django 应用程序。
django-cors-headers 已安装,
添加到installed_apps
,
添加到中间件和CORS_ORIGIN_ALLOW_ALL = Ture
在我的 Ionic 应用程序中,请求如下所示:
服务
fetchMovies()
const httpOptions =
headers: new HttpHeaders(
'Content-Type': 'application/json',
'Authorization': `Bearer $this.authService.getToken()`,
'username': 'USERNAME',
'password': 'PASSWORD'
)
return this.http.get(this.url, httpOptions).pipe(tap(resData =>
console.log(resData);
));
我得到这样的令牌:
getToken()
return this.http.post('https://www.mywebsite.com/api-token', this.params);
我使用的服务如下:
ionViewWillEnter()
this.moviesServcie.fetchMovies().subscribe();
有人知道我做错了什么吗? 如果您需要更多信息,请随时发表评论! 在此先感谢您的帮助
【问题讨论】:
为什么 cors 是假的?? 哦对不起我的错它实际上是真的 【参考方案1】:你需要使用离子原生插件这里是下面的链接
https://ionicframework.com/docs/native/http
【讨论】:
感谢您的帮助。到目前为止工作正常,但现在我收到以下错误:R3InjectorError(DashboardPageModule)[MoviesService -> MoviesService -> MoviesService -> HTTP -> HTTP -> HTTP]: NullInjectorError: No provider for HTTP!以上是关于使用 django 作为离子应用程序的后端时出现 CORS 错误的主要内容,如果未能解决你的问题,请参考以下文章
React.js 应用程序向 Django 后端发送请求时出现 CORS 问题
将 https 侦听器添加到 AWS Application Load Balancer 时出现问题
使用 Vue.js 和 Auth0 进行前端认证时如何在 Django 的后端数据库中创建用户
使用 ion-label 时出现离子错误 - TypeError: Cannot read property 'children' of null