【问题标题】:How can I go from my javascript to views.py of another app from present app如何从当前应用程序从我的 javascript 转到另一个应用程序的 views.py
【发布时间】:2021-01-15 20:50:25
【问题描述】:

我的javascript:

xhttp.open('POST', 'avgsize/avgpython' ,true);
    xhttp.setRequestHeader("content-type","application/json");
    xhttp.send(JSON.stringify(dates));

    xhttp.onreadystatechange=function(){
        if(this.readyState==4 && this.status==200){
            alert(this.responseText);               
            
        }
    }

我现在的 Home 应用(我访问的所有 url 都在这个应用中工作)urls.py:

urlpatterns = [
path('' , views.HomeBase , name="HomeBase"),
path('Home' , views.Home , name="Home"),
path('astroids' , include('Astroids.urls')),
path('nearest' , include('Nearest.urls')),
path('fastest' , include('Fastest.urls')),
path('avgsize/' , include('Avgsize.urls')),

]

我的 Avgsize 应用程序网址(我想从 Home 应用程序来这里):

path('avgpython' , views.avgpython , name="averagesizePython"),

我应该在代码中进行哪些更改,以便我可以从 javascript 转到 Avgsize 应用程序并链接 avgpython 并访问 views.avgpython。请帮忙...!!

【问题讨论】:

    标签: javascript python django xmlhttprequest


    【解决方案1】:

    逐行回答问题

    1.) 在 Javascript 的异步请求中,你需要随请求一起发送 CSRF 令牌,以防你没有随它发送 CSRF 令牌,Django 服务器将抛出一个错误,说明请求来自不同的域,以避免所有这些复杂性,我建议使用 csrf_exempt 装饰器。

    2.) 在您的主页 url 中无需更改任何内容,但为了简单起见,我建议使用以下方法来减少转发请求的 1 个步骤(考虑小型项目,如果您的项目是大你不应该跟着这个)

    from Avgsize import views
    urlpatterns = [
    path('avgsize/avgpython' , include('views.avgpython'))
    ]
    

    3.)正如我在第一点所说的,您需要在该视图中添加 csrf 豁免,这就是您需要这样做的方式。

    from django.views.decorators.csrf import csrf_exempt
    from django.http import HttpResponse
    
    @csrf_exempt
    def avgpython(request):
        return HttpResponse("You came to AvgPython Function")
    

    据我所知,我向您提供了您想要获得的信息,如果您在当前解决方案中遇到任何问题,您可以在解决方案中发表评论,或者您甚至可以通过 kiranu941@gmail.com 给我发邮件

    【讨论】:

      猜你喜欢
      • 2019-08-01
      • 1970-01-01
      • 2022-01-12
      • 2011-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-24
      相关资源
      最近更新 更多