2014-04-25 3 views
3

여기 사용 내 JS이다 JQuery와 blockUI 플러그인 :ajax 요청이 django에서 작동하지 않습니까?

$(document).ajaxStop($.unblockUI); 

$('#submit-id-submit').click(function() { 
    $.blockUI({message:'<h1><img src="{% static 'css/spinner.gif' %}" /> Just a moment ...</h1>'}); 
    $.ajax({ 
    url: "/search/test/", 
    cache:'false', 
    dataType: 'text', 
    type:"GET", 
    success: function(data){ 
     alert(data); 
    }, 
    error: function(data){ 
     alert('error; '+ eval(error)); 
    } 
    }); 
}); 

내보기 :.

def test_ajax(request): 
    time.sleep(20) 
    print "in test_ajax" 
    return HttpResponse("hell world") 

url(r"search/test/$", test_ajax,name="dummy"), 

첫째, 나는 오류에서 경고를 얻을 수 있기 때문에 AJAX 호출이 (오류를 반환 볼 수 있지만 오류 메시지가 표시되지 않음)

두 번째로 print 명령문이 실행되기를 기대하기 때문에 내 view_ajax가 호출되지 않지만 실행되지 않습니다.

여기에 무슨 문제가 있는지 알 수 없습니다.

+0

에 대한 자세한 내용을보실 수 있습니다 (I 추측 귀하의 경우 양식 제출에) 장소 기본 동작을 할 수 방지 경고의 중단 점, Chrome의 개발 도구에서 오류를 검사하고 게시 하시겠습니까? – Fiver

답변

4

나는 비슷한 문제가 과거에 발생했습니다. 그 이유는 기본 양식 제출을 허용하고 있기 때문입니다. 이것을 시도하고 당신이 얻는 것을보십시오;

$('#submit-id-submit').click(function(e) { 
    e.preventDefault(); 
    $.blockUI({message:'<h1><img src="{% static 'css/spinner.gif' %}" /> Just a moment ...</h1>'}); 
    $.ajax({ 
    url: "/search/test/", 
    cache:'false', 
    dataType: 'text', 
    type:"GET", 
    success: function(data){ 
     alert(data); 
    }, 
    error: function(data){ 
     alert('error; '+ eval(error)); 
    } 
    }); 
}); 

또는이 중 하나를 수행하여 단순히 return false

$('#submit-id-submit').click(function() { 

    $.blockUI({message:'<h1><img src="{% static 'css/spinner.gif' %}" /> Just a moment ...</h1>'}); 
    $.ajax({ 
    url: "/search/test/", 
    cache:'false', 
    dataType: 'text', 
    type:"GET", 
    success: function(data){ 
     alert(data); 
    }, 
    error: function(data){ 
     alert('error; '+ eval(error)); 
    } 
    }); 
    return false; 
}); 

, 당신은 당신이 here;

+1

감사합니다 ... 도움이되었습니다. –

1

오류 기능이 존재하지 않는 변수 error에 경고하려고합니다. data 변수에 경고를 보냅니다.

또한보기 기능이 비 AJAX GET 요청과 함께 작동하는지 확인하는 데 도움이됩니다.

마지막으로 귀하의 경우 GET 요청을 사용하는 경우에는 적용되지 않지만 AJAX 게시 요청을해야하는 경우 https://docs.djangoproject.com/en/1.6/ref/contrib/csrf/#ajax 헤더에 CSRF 토큰을 보내야합니다.

관련 문제