Для собственного образования я создаю простой демон, который будет функционировать как REST-сервер, прослушивающий сокет 9000. Для моего первого теста я пытаюсь сделать вызов REST, просто выполнив GET на http://localhost:9000/getsettings.json.
Простой взломанный сервер получает запрос в порядке, но я думаю, что есть проблема с ответом, который он отправляет. Я пытаюсь отправить ответ как JSON. Код для сокета сервера ниже. Ниже приведен код jQuery, который я использую для выполнения запроса JSON. Оператор print на сервере Python выводит действительный набор настроек в формате JSON. Ни одно предупреждение в Javascript не вызывается при загрузке страницы. Есть идеи?
<code>
Python:
def socketThread(self):
while 1:
sock, address = self.serverSocket.accept()
fs = sock.makefile()
line = fs.readline();
if line.startswith('GET /settings.json'):
sock.sendall("HTTP/1.0 200 OK\r\n")
sock.sendall("Content-Type: application/json\r\n")
settings = json.dumps(self.currentSettings) #, indent=4
sock.sendall("Content-Length: " + str(len(settings)) + '\r\n\r\n')
sock.sendall(settings)
print settings
sock.close()</p>
<p>Javascript:
$(document).ready(function() {
$.ajax({
url: 'http://localhost:8080/settings.json',
cache: false,
success: function(json){
alert('json success ' + json);
},
error: function(xhr, textStatus, errorThrown) {
alert(xhr.statusText);
}
});
});