将JSON对象从javascript客户端传递到Python应用程序

时间:2018-01-08 23:35:44

标签: javascript python json sockets

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

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

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

JNIEXPORT jclass JNICALL
Java_java_lang_Object_getClass(JNIEnv *env, jobject this)
{
    if (this == NULL) {
        JNU_ThrowNullPointerException(env, NULL);
        return 0;
    } else {
        return (*env)->GetObjectClass(env, this);
    }
}

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

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

目前,我正在使用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 检索数据并将结果输出到屏幕。我是否需要修复我的AJAX消息或者是否需要修复我的python代码?或者是否有更大的图片我错过了。

1 个答案:

答案 0 :(得分:0)

Websockets打开持久连接,用于实时通信。如果您需要标准的RESTful模型,那么HTTP就是您所需要的。

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

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

这里不需要websockets。