Django:当urls.py里的path使用参数,ajax访问请求的url访问404(路径不正确,多了前缀)

 搞了很久,最后发现,这是前端问题....????????

 


图1:在notices路径加上<to>传递参数后,浏览器执行该path,在跳转的页面里调用ajax请求,执行url(方框3),请求地址自动加上notices,即图2,导致程序报错,因为他在urls.py里匹配了方框1的path,而方框1的对应的方法里无getNotices对应的情况,因此无返回值。

Django:当urls.py里的path使用参数,ajax访问请求的url访问404(路径不正确,多了前缀)
图1

 

Django:当urls.py里的path使用参数,ajax访问请求的url访问404(路径不正确,多了前缀)
图2

 

图3、4是修复后的情况,程序无报错。
百度不到报错的原因,也不知道为啥请求getNotices会加上了notices ,变成Notices/getNotices。

Django:当urls.py里的path使用参数,ajax访问请求的url访问404(路径不正确,多了前缀)
图3
Django:当urls.py里的path使用参数,ajax访问请求的url访问404(路径不正确,多了前缀)
图4

 原因:当使用了<to>参数后,页面路径变成了http://127.0.0.1:8000/notices/,导致ajax直接访问“getNotices”时,请求路径为:http://127.0.0.1:8000/notices/getNotices,以至于报错。

解决方法:ajax访问“getNotices”改为“/getNotices”,浏览器请求就会变成http://127.0.0.1:8000/getNotices,访问正确。

ps:单斜杠,跳转到整个网站根目录下的(如果是在本机测试,也就是http://localhost:8080/)