reactjs - 我无法使用 DRF 和 REACT 从 RESTful API 获取数据
问题描述
在我使用的后端permission_classes = [IsAuthenticated]
,我使用rest框架接口登录在端口 8000 上运行 django 服务器,然后我试图从端口 3000 获取数据。所以我想知道为什么port 8000
终端有错误
Forbidden: /api/drive-links/
[04/Jun/2021 18:11:01] "GET /api/drive-links/ HTTP/1.1" 403 58
Django 休息框架 API
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
[
{
"id": 1,
"title": "Clip",
"link": "https://drive.google.com/file/d/12345"
}
]
RESTdataSource.js
包含
import Axios from "axios";
// Config global defaults for axios/django
Axios.defaults.xsrfHeaderName = "X-CSRFToken";
Axios.defaults.xsrfCookieName = "csrftoken";
export class RestDataSource {
constructor(base_url) {
this.BASE_URL = base_url;
}
GetData(callback) {
this.SendRequest("get", this.BASE_URL, callback);
}
async SendRequest(method, url, callback) {
callback(
(
await Axios.request({
method: method,
url: url,
})
).data
);
}
}
并Isloated Table
包含
import React, { Component } from "react";
import { RestDataSource } from "./RESTdataSource";
class IsolatedTable extends Component {
constructor(props) {
super(props);
this.state = {
DriveLinks: [],
};
this.dataSource = new RestDataSource(
"http://localhost:8000/api/drive-links/"
);
}
render() {
return (
<table className="table table-sm table-striped table-bordered">
<thead>
<tr>
<th colSpan="5" className="bg-info text-white text-center h4 p-2">
DriveLinks
</th>
</tr>
<tr>
<th>ID</th>
<th>Name</th>
<th>Drive Links</th>
<th></th>
</tr>
</thead>
<tbody>
{this.state.DriveLinks.map((p) => (
<tr key={p.id}>
<td>{p.id}</td>
<td>{p.title}</td>
<td>{p.link}</td>
<td />
</tr>
))}
</tbody>
</table>
);
}
componentDidMount() {
this.dataSource.GetData((data) => this.setState({ DriveLinks: data }));
}
}
export default IsolatedTable;
最后我无法从中获取数据,后端api
导致的错误在哪里。HTTP response 403
django
解决方案
推荐阅读
- java - 试图在公共静态空白中繁殖。任何帮助表示赞赏
- google-cloud-platform - 将镜像从 Docker 注册表移动到 GCR
- sql-server - 连接 SQL Server 中“Value1 - Value9”列中的值?
- openstack - openstack新手:即使密码正确,为什么还要给我这个错误?
- google-kubernetes-engine - 使用 GKE Ingress 限制每个 pod 一个连接
- flutter - 在 Flutter 应用程序中处理应用程序布局
- python - 基于约束的数据框列生成
- c# - .net core3 grpc 服务器端流永远
- apache-camel - 如何实现有关多播的路由?
- python - Pandas:根据多个条件生成句子并将它们显示在单独的列中