我试图让javascript程序将数据发送到python套接字,但它没有收到正确的数据。
我想要python打印' aaaa'。
这是我的javascript代码:
function createCORSRequest(method, url) {
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr) {
xhr.open(method, url, true);
} else if (typeof XDomainRequest != "undefined") {
xhr = new XDomainRequest();
xhr.open(method, url);
} else {
xhr = null;
}
return xhr;
}
var xhr = createCORSRequest('GET', "http://192.168.1.10:12345");
xhr.send("aaaa");
这是我的python代码:
import socket
s = socket.socket()
host = socket.gethostname()
port = 12345
BUFFER_SIZE = 1024
s.bind(('', port))
s.listen(5)
while True:
c, addr = s.accept()
print ('Got connection from', addr)
c.send(bytes('Thank you for connecting','UTF-8'))
data = c.recv(BUFFER_SIZE)
print(data)
c.close()
答案 0 :(得分:1)
"aaaa"
中的xhr.send("aaaa")
)都将被忽略(表示:不发送)。发送HTTP正文使用请求类型,如POST。答案 1 :(得分:1)
Steffen的回答是正确的(至少在一般情况下 - 不能评论JS细节)。此外,独立验证应用程序的移动部分始终是个好主意,这样您就可以缩小问题的范围。
以下是如何验证您的python服务器是否可以从命令行运行:
在另一个终端窗口中,使用telnet
连接到它 telnet localhost 12345
(首先尝试使用IPv6连接,失败并回退到IPv4)
您将看到欢迎消息返回给客户。输入一些文字,然后按Enter
。
使用您的代码,以及它如何查找客户端。我将文本meow
发送到服务器:
margold@home-macbook ~ $ telnet 127.0.0.1 12345
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Thank you for connectingmeow
Connection closed by foreign host.
对于服务器:
margold@home-macbook ~ $ ./server.py
('Got connection from', ('127.0.0.1', 61148))
meow