#reactjs #django #django-rest-framework #react-redux
#reactjs #django #django-rest-framework #react-redux
Вопрос:
я создаю музыкальное веб-приложение с использованием react-redux и django, и у меня есть функция, которая возвращает единый список воспроизведения, она возвращает html-ответ вместо json, зная, что он работает правильно, когда два приложения разделены, но когда я использую маршруты django в качестве основных маршрутов и реагирую как интерфейс, используя только эту строку:
urlpatterns = re_path(r'', TemplateView.as_view(template_name='index.html')),
вот моя функция
**django**
class getplaylist(APIView):
renderer_classes = [JSONRenderer]
def get(self,request):
id=request.META.get('HTTP_ID',None)
plst=playlist.objects.get(id=id)
return Response(plst)
**react**
export const getPlaylist=(id)=>{
return dispatch=>{
dispatch(getPlaylistStart())
axios.get('http://127.0.0.1:8000/songs/getplaylist/',{headers:{ 'id':id}})
.then(res=>{
console.log(res);
dispatch(getPlaylistSuccess(res.data))
})
}
}
и это ответ
playlist(pin):"<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Web site created using create-react-app"/><link rel="apple-touch-icon" href="/logo192.png"/><link rel="manifest" href="/manifest.json"/><title>Songs App</title><link href="/static/css/2.3327982c.chunk.css" rel="stylesheet"><link href="/static/css/main.18cf81d6.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,f,l=r[0],i=r[1],a=r[2],c=0,s=[];c<l.length;c )f=l[c],Object.prototype.hasOwnProperty.call(o,f)amp;amp;o[f]amp;amp;s.push(o[f][0]),o[f]=0;for(n in i)Object.prototype.hasOwnProperty.call(i,n)amp;amp;(e[n]=i[n]);for(pamp;amp;p(r);s.length;)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r ){for(var t=u[r],n=!0,l=1;l<t.length;l ){var i=t[l];0!==o[i]amp;amp;(n=!1)}namp;amp;(u.splice(r--,1),e=f(f.s=t[0]))}return e}var n={},o={1:0},u=[];function f(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,f),t.l=!0,t.exports}f.m=e,f.c=n,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbolamp;amp;Symbol.toStringTagamp;amp;Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,r){if(1amp;ramp;amp;(e=f(e)),8amp;r)return e;if(4amp;ramp;amp;"object"==typeof eamp;amp;eamp;amp;e.__esModule)return e;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2amp;ramp;amp;"string"!=typeof e)for(var n in e)f.d(t,n,function(r){return e[r]}.bind(null,n));return t},f.n=function(e){var r=eamp;amp;e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="/";var l=this.webpackJsonpfrontend=this.webpackJsonpfrontend||[],i=l.push.bind(l);l.push=r,l=l.slice();for(var a=0;a<l.length;a )r(l[a]);var p=i;t()}([])</script><script src="/static/js/2.25085612.chunk.js"></script><script src="/static/js/main.dc42ca8e.chunk.js"></script></body></html>"
Комментарии:
1. Вы пытались удалить завершающую косую черту?
http://127.0.0.1:8000/songs/getplaylist
2. вы правы, это была проблема
Ответ №1:
Ваша проблема пока не слишком ясна, например, как вы используете ReactJS с django.
Если ваше приложение ReactJS и Django работают вместе на одном сервере, то вам нужно что-то в шаблоне url с регулярным выражением.
Также проверьте его URL http://127.0.0.1:8000/songs/getplaylist/
в вашем браузере вместо запроса ajax.
Если вы хорошо видите свою конечную точку, это означает, что ваш шаблон url / маршрутизатора подходит. если нет, пожалуйста, обновите свой маршрут с помощью регулярного выражения.