【问题标题】:Pass JSON object from javascript client to Python app将 JSON 对象从 javascript 客户端传递到 Python 应用程序
【发布时间】:2018-06-17 23:30:00
【问题描述】:

我有一个 python 应用程序在本地运行,侦听一个 JSON 对象的套接字。

我希望能够通过使用 javascript 从浏览器发送 JSON 对象来连接到 python 应用程序。有哪些方法可以做到这一点?我认为我应该研究 XHR 或 websockets 以了解如何解决这个问题,但我不确定每个选项的优缺点是什么。

我尝试使用 AJAX 发布请求通过 JSON 对象发送,但它似乎没有像我预期的那样工作。

 $.ajax({
        type: "post",
        url: "http://localhost:8888",
        crossDomain: true,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        data: JSON.stringify(object),
        success: function(result){...}

python 应用程序正在获取一些东西,但我无法提取 JSON 数据。这是python应用程序的当前输出:

OPTIONS / HTTP/1.1
Host: localhost:8888
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:57.0) 
Gecko/20100101 Firefox/57.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Access-Control-Request-Method: POST
Access-Control-Request-Headers: content-type
Origin: null
Connection: keep-alive

目前,我正在使用char = socket.recv(1) 检索数据并将结果输出到屏幕。我需要修复我的 AJAX 消息还是需要修复我的 python 代码?或者有没有我错过的更大的图片。

【问题讨论】:

    标签: javascript python json sockets


    【解决方案1】:

    Websocket 有一个打开的持久连接,用于实时通信。如果您想要一个标准的 RESTful 模型,那么您需要的是 HTTP。

    我不确定您使用的是什么 Python Web 框架,但大多数 Web 框架应该允许您定义一个可以POST 的路由,并将帮助您将有效负载转换为要在控制器中使用的对象.

    我建议您查找一些您正在使用的 Python 框架的常见示例。很确定他们会有一个如何处理 POST 请求的示例。

    这里不需要 websocket。

    【讨论】:

    • 感谢您的信息。我本身没有使用任何 python 框架。我正在打开一个 INET 套接字连接,并希望使用 javascript 前端将 JSON 数据发送到 python 服务器。如果没有 websockets,这似乎是不可能的,对吧?抱歉,我一般不太熟悉套接字。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多