2015-05-14 2 views
0
  1. Загрузил последний zip-файл django-dajaxice из github, затем разархивировать его.
  2. Затем я ввожу django-dajaxice-master/examples папку, запустите 'python manage.py runningerver 13.122.241.172:80', (это IP-адрес моего компьютера).

Сервер начался нормально. На этом серверном компьютере я могу посетить http13.122.241.172 /, и страница отображается нормально. Затем я нажимаю кнопку «Hello», я могу получить правильный ответ.Django сервер на одном компьютере, клиент на другом компьютере

Проблема:

В компьютере моего коллегу, чей IP является 13.122.242.16, он может посетить http13.122.241.172/, НО, когда он нажмите кнопку «Hello», нет никакого ответа!

Debugging:

Затем я проверяю окно командной строки, я вижу, когда он нажмите на кнопку, мой сервер никогда не получит «GET /dajaxice/simple.hello/?argv=undefined HTTP/1.1» запрос! Я настолько смущен этой проблемой и работал над ней три дня. Кто-нибудь может мне помочь?

Примечание:

  • Джанго версия 1.4.20.
  • Django Настройки: DEBUG = True.

Мой коллега может посетить http://www.dajaxproject.com/dajaxice/, и если он нажмет «Получить сообщение с сервера!» он может получить ответ сервера.

Код:

Это соответствующий код из dajaxice project:

index.html (шаблон)

{% load dajaxice_templatetags %} 
<html> 
<head> 
{% dajaxice_js_import 'nocsrf' %} 
</head> 
<body> 
    <button onclick="Dajaxice.simple.hello(function(d){alert(d.message);})">Hello</button> 
    <button onclick="Dajaxice.simple.bye(function(d){alert(d.message);})">Bye</button> 
    <button onclick="Dajaxice.more.complex.bye(function(d){alert(d.message);})">Complex Bye</button> 
    <button onclick="Dajaxice.simple.lol(function(d){alert(d.message);})">LOL</button> 
    <button onclick="Dajaxice.simple.get_args(function(d){alert(d.message);}, {'foo': 'var'})">GET args</button> 
</body> 
</html> 

ajax.py

import json 

from dajaxice.decorators import dajaxice_register 


@dajaxice_register(method='GET') 
@dajaxice_register(method='POST', name='other_post') 
def hello(request): 
    return json.dumps({'message': 'hello'}) 


@dajaxice_register(method='GET') 
@dajaxice_register(method='POST', name="more.complex.bye") 
def bye(request): 
    raise Exception("PUMMMM") 
    return json.dumps({'message': 'bye'}) 


@dajaxice_register 
def lol(request): 
    return json.dumps({'message': 'lol'}) 


@dajaxice_register(method='GET') 
def get_args(request, foo): 
    return json.dumps({'message': 'hello get args %s' % foo}) 

Прогресс:

  • Спасибо за вашу помощь в этой теме. Я новичок здесь. Stackoverflow действительно отличное место.
  • Теперь я нашел проблему: на моем компьютерном компьютере я использую IE11, но на компьютере моего коллеги он использует IE9. Если он изменится на Chrome, все будет в порядке. Но это все еще смущает меня, как я должен делать с другими людьми, у которых есть только IE9.
+0

Вы должны разместить свой код, так как он, вероятно, содержит некоторую ошибку. – geckon

+0

@ geckon код не мой. Я просто загружаю [проект] (https://codeload.github.com/jorgebastida/django-dajaxice/zip/master) и запускаю пример. Возможно, я могу опубликовать его здесь, но я думаю, что у людей, которые используют dajax, уже есть источник, а также пример. Но, возможно, никогда не пытайтесь запустить сервер на своем собственном компьютере, но получить доступ к нему на другом компьютере с IE9. –

+0

Спасибо. Также важно указать браузер. Также спасибо за улучшение форматирования вашего вопроса. – geckon

ответ

0

Первое, что я постараюсь сделать, это убедиться, что в IE9 отключен Compatibility View.

Также обратите внимание, что автор Джанго-dajaxice себя doesn't recommend using the package:

Одним словом, Нет, я создал этот проект 4 года назад как прохладный инструмент в для того, чтобы решить одну конкретную проблему, которую я имел в то время.

В эти дни использование этого проекта - плохая идея.

Может быть, я более прагматичны сейчас, может быть, мое видение того, как мои Джанго проекты должны быть связаны с библиотеками, как это изменилось, или возможно в эти дни я действительно дорожу чистоту и простоту разработки Джанго в ванили.

Если вы хотите имитировать то, что делает этот проект, вам понадобятся только простые взгляды и jQuery .

Забудьте о добавлении ненужной сложности. Держите вещи простыми.

Поэтому я бы подумал, действительно ли вам нужна dajaxice, или я могу сделать это по-другому.