Перенаправление на корневой URL в AJAX - PullRequest
0 голосов
/ 05 июня 2019

Я ищу способ начать URL с ('') вместо ('search /') в запросе AJAX. Я могу обойти эту проблему, просто добавив новый путь в диспетчере URL с помощью path('search/email_add/<int:pk>/', views.email_add, name="email_add_from_search"), но это не СУХОЙ метод, и RedirectView меня не удовлетворяет.

Он работает правильно, когда я использую скрипт add-phone.js в корневом URL.

Ошибка Not Found: /search/email_add/41/ при использовании скрипта в ('search /') URL

Запрос Ajax

$.ajax({
                url: 'email_add/'+person_id+'/',
                method: 'POST',
                data: {
                    'email': email,
                },
                error: function(result){},
                success: function(result){},

urls.py

urlpatterns = [
    path('', views.contact_list, name="contact_list"), # GET
    path('add/', views.contact_add, name="contact_add"), # POST
    path('search/', views.contact_search, name="contact_search"), # GET
    path('delete/<int:pk>/',  views.contact_detail, name="contact_delete"), # DELETE
    path('edit/<int:pk>/',  views.contact_detail, name="contact_edit"), # POST
    path('phone_add/<int:pk>/', views.phone_add, name="phone_add"), # POST
    path('email_add/<int:pk>/', views.email_add, name="email_add"), # POST
    # path('search/phone_add/<int:pk>/', views.phone_add, name="phone_add_from_search"),
    # path('search/email_add/<int:pk>/', views.email_add, name="email_add_from_search"),

]

1 Ответ

0 голосов
/ 05 июня 2019

В вашем javascript этот url: 'email_add/'+person_id+'/' обращается к относительному URL. Так что, если вы находитесь в URL http://my-web-site/some/path, это приведет вас к http://my-web-site/some/path/email_add/id/

Я думаю, что вы хотите http://my-web-site/email_add/id/, что означает, что вам нужно url: '/email_add/'+person_id+'/'

...