2014-09-02 4 views
2

내가 PyCharm (장고 프레임 워크에 대한 IDE)을 사용하고, 그것이 제대로 작동하지만이 오류가 난 다시 Dajaxice 호출 버튼을 클릭 할 때 콘솔에서 볼Dajaxice : 문제가 생겼습니다.

error: [Errno 10053] An established connection was aborted by the software in your host machine 

을 가지고, 그것은

을 말한다

<input type="submit" class="btn btn-primary" value="Display" id="showbutton" onclick="Dajaxice.tbl.sayhello(my_js_callback);"> 

내 앱의 이름은 어떤 이유로 tbl입니다 :

Dajaxice: Something went wrong. 

여기 템플릿입니다.

ajax.py

from django.utils import simplejson 
from dajaxice.decorators import dajaxice_register 

@dajaxice_register 
def sayhello(request): 
    return simplejson.dumps({'message':'Hello World'}) 

url.py

from django.conf.urls import patterns, include, url 
from dajaxice.core import dajaxice_autodiscover, dajaxice_config 
dajaxice_autodiscover() 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
        url(r'^$', 'tbl.views.display_maps', name='home'), 
        url(r'^admin/', include(admin.site.urls)), 
        url(r'^accounts/auth/$', 'tbl.views.auth_view'), 
        url(r'^accounts/logout/$', 'tbl.views.logout'), 
        url(r'^profile/$', 'tbl.views.user_profile'), 
        url(r'^accounts/loggedin/$', 'tbl.views.loggedin'), 
        url(r'^accounts/invalid/$', 'tbl.views.invalid_login'), 
        url(r'^landinfo$', 'tbl.views.landpin_info'), 
        url(r'^simple-autocomplete/', include('simple_autocomplete.urls')), 
        url(dajaxice_config.dajaxice_url, include('dajaxice.urls')), 
       ) 

내가 잘못 알고하지 않습니다. 나는 Dajaxice에 대한 설명서를 따라 갔지만 다시 응용 프로그램을 실행할 때이 오류가 발생했습니다.

self._sock.sendall(view[write_offset:write_offset+buffer_size]) 
error: [Errno 10053] An established connection was aborted by the software in your host machine 
+0

현재 동일한 문제가 있습니다. – MadeOfAir

답변

0

dajaxice 오류 메시지가 없거나 맞춤법이 틀린 매개 변수 파이썬 함수의 이름이나 자바 스크립트 함수에서 발생하는 예외를 포함하여 여러 가지 문제가 발생할 수 있습니다 '뭔가 잘못 갔다'. 그러나 예제는 매우 간단합니다. 파이썬 함수에는 명명 된 매개 변수가 없으므로 JavaScript 함수에 대한 코드를 제공하지 않았습니다. 귀하의 예제는 내 자신의 코드에서 디버깅하고 수정 한 비슷한 문제의 패턴을 따른다.

제출 단추에 onclick 처리기를 사용하는 것과 관련이 있습니다. 제출 버튼 핸들러에서 ajax 호출을하면 서버가 폼을 제출하여 생성 된 POST 요청을 처리하는 동시에 서버에서 비동기 활동이 시작된다고 생각합니다. 나는 서버가 ajax 호출에 응답하기 전에 POST 요청을보고 POST가 ajax 호출을 선점하여 dajaxice 오류 메시지가 발생한다고 생각한다.

디버깅과 근본 원인에 대한 이해는 다소 복잡하지만 테스트 사례를 광범위하게 사용했으며 사파리 브라우저와 Django python 개발 서버를 통해 일관되게 동작을 재현 할 수 있습니다.

ajax 호출이 작동하려면 브라우저와 서버가 모두 비동기 메시지를 처리해야합니다. 나는이 선점을 허용하는 서버에 대해 잘못 될 수 있습니다. 오히려 그것은 귀하의 브라우저 일 수 있습니다. 그럼에도 불구하고 최종 결과는 같습니다.

그래서이 문제를 어떻게 피합니까? 필자의 경우에는 폼에 숨겨진 입력 요소를 추가하고 아약스로 보낸 입력 데이터의 값 필드에 데이터를 첨부했습니다. 그런 다음 양식을 제출할 때 자동으로 생성되는 POST의 다른 양식 데이터와 함께 숨겨진 데이터가 자동으로 전송됩니다.

다른 해결책이 있습니다. 아약스를 통해 양식 데이터를 모두 제출하고 자동 양식 POST 양식 데이터 (Submitting HTML form using Jquery AJAX)를 사용 중지하십시오. 또는 ajax를 사용하여 양식 제출과 연결되지 않은 일부 이벤트를 사용하여 서버로 데이터를 보낼 수 있습니다.

0

어떤 장고 버전을 사용하고 있습니까?

Dajaxice는 죽은 프로젝트이며 Django> 1.5에서는 작동하지 않습니다. (my other post 참조)

관련 문제