python套接字无法从javascrip获取发送的数据

2024-06-28 11:51:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图让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代码:

^{pr2}$

Tags: 数据代码程序urlnewifvaropen
2条回答

Steffen的回答是正确的(至少在总体上-不能对JS的细节发表评论)。此外,独立地验证应用程序的活动部分总是一个好主意,这样您就可以缩小问题所在。在

下面是如何从命令行验证python服务器是否正常工作:

  1. 启动服务器
  2. 在另一个终端窗口中,使用telnet连接到它

    telnet localhost 12345

    (它将首先尝试使用IPv6连接,然后失败,然后返回到IPv4)

  3. 您将看到您的欢迎消息返回给客户机。输入一些文本并按Enter

  4. 服务器将打印您的消息并关闭与客户端的连接。在

使用您的代码,下面是它将如何寻找客户机。我正在将文本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.

对于服务器:

^{pr2}$
  1. 您正在执行XMLHttpRequest,这是一个HTTP请求。但是python服务器根本不处理HTTP协议。处理HTTP意味着读取HTTP请求头,根据头中的信息读取主体,并返回正确的HTTP响应。在
  2. 您正在执行HTTP GET请求。GET请求不需要有效负载,因此您添加的任何主体数据(即,xhr.send("aaaa")中的"aaaa")都将被忽略(意味着:不发送)。要发送HTTP主体,请使用POST等请求类型。在

相关问题 更多 >