我目前遇到的问题一直让我疯狂过去30-40分钟。我已经使用Django / Django REST框架成功创建了产品api。但是,当我调用端点尝试使用角度消耗它时,我得到404错误。当我打开控制台时,我遇到了一个错误,指出GET http://localhost:8000/static/api/products/ 404 (Not Found)
。但是,当我在浏览器中手动导航到URL时,我会看到可浏览的api菜单。
我不确定这里发生了什么......但我认为这可能是因为我的角度静态网址/根源。
以下是该应用的主要区域网址的当前代码:
from django.conf.urls import url,include
from django.contrib import admin
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^api/', include('customerreview_rest.urls', namespace='api')),
url(r'^api/',include ('products_rest.urls', namespace='api')),
url(r'^', include('GemStore_App.urls',namespace='frontend')),
] + static(settings.MEDIA_URL,document_root = settings.MEDIA_ROOT)
Here is the products URL/root for the endpoint:
from django.conf.urls import url,include
from rest_framework import routers
from products_rest.viewsets import ProductsViewsets
router = routers.DefaultRouter()
router.register('products',ProductsViewsets,'products')
urlpatterns = [
url(r'^', include(router.urls)) #base router
]
最后,这是静态角度文件的代码:
from django.conf.urls import url, include
from django.views.generic.base import RedirectView
urlpatterns = [
url(r'^$', RedirectView.as_view(url='static/index.html', permanent=False), name='index')
]
这里也是我计划用来使用Angular来使用api的代码:
myStore.controller("myStoreController",function($scope,$http){
$scope.gems = $http.get("api/products/").then(
function(response){
$scope.gems = response.data
}, function(error){
$scope.error = error
});
})
任何关于这个话题的灯光,或者正确方向上的一点,都会非常感激。
由于
答案 0 :(得分:0)
原来问题是我需要在通话中加入另一个/
才能接受。
总而言之,角度端口的代码现在看起来像这样:
myStore.controller("myStoreController",function($scope,$http){
$scope.gems = $http.get("/api/products/").then(
function(response){
$scope.gems = response.data
}, function(error){
$scope.error = error
});
})
@Sayse感谢您的帮助。