【发布时间】:2010-11-27 22:10:29
【问题描述】:
为了我自己的教育,我正在创建一个简单的守护进程,它将充当 REST 服务器,侦听套接字 9000。对于我的第一个测试,我尝试执行一个 REST 调用,即在 http://localhost:9000/getsettings.json 上简单地执行一个 GET。
我破解的简单服务器可以正常接收请求,但我认为它发送的响应存在问题。我正在尝试将响应作为 JSON 发送。服务器套接字的代码如下。下面是我用来发出 JSON 请求的 jQuery 代码。 Python 服务器中的 print 语句确实以 JSON 格式打印一组有效的设置。页面加载时不会调用 Javascript 中的警报。有什么想法吗?
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()
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);
}
});
});
【问题讨论】: