![](/img/trans.png)
[英]request.data is empty in django REST API Request for PATCH request from Safari using AngularJS
[英]Not getting data from Django rest api to AngularJS
我是AngularJS
和Djnago Rest Framework
。 我創建了一個Web API,以JSON格式返回客戶列表。 我在mozilla firefox的RESTClient
插件中獲取了正確的數據。 但是我無法在AngularJS
腳本中獲取數據。
在這里,我附上了所有代碼和錯誤圖像,如下所示:
views.py (API代碼)
class CustomerListView(APIView):
renderer_classes = (JSONRenderer, )
def post(self, request, format=None):
content = []
customer_list = Customer_tbl.objects.all()
if customer_list:
for customer in customer_list:
content.append({
'first_name': customer.cus_first_name,
'last_name': customer.cus_last_name,
'email': customer.cus_email,
'contact': customer.cus_contact
})
return Response(content)
test.html
<!DOCTYPE html>
<html ng-app="myTestModule">
<head>
<script src="../scripts/angular.js"></script>
<script src="../scripts/sample_page_test.js"></script>
<link href="../css/style_new.css" rel="stylesheet" />-->
</head>
<body>
<div ng-controller="customerController">
<table>
<thead>
<tr>
<th>First Name</th>
<th>Last Name</th>
<th>Email</th>
<th>Contact</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="customer in customers">
<td>{{ customer.first_name }}</td>
<td>{{ customer.last_name }}</td>
<td>{{ customer.email }}</td>
<td>{{ customer.contact }}</td>
</tr>
</tbody>
</table>
</div>
...
...
...
</body>
</html>
sample_page_test.js
var myTestApp = angular.module("myTestModule", [])
myTestApp.controller("customerController", function ($scope, $http) {
var url = "http://192.168.1.102:8000/stl_web_app/api/customer_list/";
$http.post(url).then( function(response) {
$scope.customers = response.data;
});
});
錯誤圖片
在Firebug控制台中出現以下錯誤
我需要在Django應用程序的settings.py
中進行任何更改嗎?
所以,有人可以幫我解決這個問題嗎?
任何幫助將不勝感激。
謝謝。
首先,您實際上是在嘗試發出POST請求嗎? 因為從外觀上看,您似乎正在嘗試返回客戶列表。 請使用GET請求而不是POST來獲取數據。
其次,如果您遇到跨域資源共享問題,請檢查您是否正確傳遞了CSRF-TOKEN和POST請求。
class CustomerListView(APIView):
renderer_classes = (JSONRenderer, )
def get(self, request, format=None):
content = []
customer_list = Customer_tbl.objects.all()
if customer_list:
for customer in customer_list:
content.append({
'first_name': customer.cus_first_name,
'last_name': customer.cus_last_name,
'email': customer.cus_email,
'contact': customer.cus_contact
})
return Response(content)
var myTestApp = angular.module("myTestModule", [])
myTestApp.controller("customerController", function ($scope, $http) {
var url = "http://192.168.1.102:8000/stl_web_app/api/customer_list/";
$http.get(url).then( function(response) {
$scope.customers = response.data;
});
});
希望這會幫助你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.