如何使用 JavaScript 提交 JSONRPC 请求

Posted

技术标签:

【中文标题】如何使用 JavaScript 提交 JSONRPC 请求【英文标题】:How to submit a JSONRPC request using JavaScript 【发布时间】:2015-03-26 08:58:20 【问题描述】:

我正在使用 JSONRPC 网络服务,我正在尝试将请求发送到服务器端以获取响应。 基本上我试图在请求中发送以下详细信息

methodname//example 899
Language code
Transaction code
User ID
Password
number
Amount

现在有我需要提交请求的主机。如果我 telnet 主机和端口连接成功。但是当我尝试通过浏览器提交请求时,我得到一些 net::ERR_CONNECTION_CLOSED.I不知道为什么会这样。

我不确定我要提交的请求,但这是我要提交的请求。我正在使用 javascript 提交请求

<Script>
    JSONTest = function() 


        $.ajax(
            url : "https://domain.com:port/",
            type : 'GET',
            data : 
                "jsonrpc" : "2.0",
                "method" : "904",
                "id" : "1",
                "params": [ "en", "69", "2123129930", "4371232483", "50", "" ]
            ,
            dataType : "json",
            success : function(result) 
                //alert("result"+result[0]);
                switch (result) 
                case true:
                    processResponse(result);
                    break;
                default:
                    resultDiv.html(result);
                
            ,
        /*   error: function (xhr, ajaxOptions, thrownError) 
          alert(xhr.status);
          alert(thrownError);
           */
        );
    ;
</script>

<button type="button" onClick="JSONTest()">JSON</button>

根据上述脚本,我正在尝试寻找以下问题的答案。

    我上面提交的请求是否有效? 如果上述声明错误,如何提供 URL 值? 我上面提供的类型可以吗? 请验证所有参数并让我知道所有参数位置是否有效。 我上面提供的参数的层次结构是什么?

非常感谢您在这方面的帮助。

【问题讨论】:

【参考方案1】:

您的 jsonrpc-server 是否接受 HTTP GET 请求?如果您的 jsonrpc-server 完全支持 http,则更正常的方法是使用 POST 传输 jsonrpc 请求数据。

您是否考虑过浏览器的跨域限制?

我猜你应该发出一个 POST 请求。数据看起来是正确的,但这一切都取决于 jsonrpc-server。有一些通过 http 传输 jsonrpc 的常用方法,但它不是协议本身的一部分。

确保服务器接受http post,并输出Access-Control-Allow-Origin标头;见http://en.wikipedia.org/wiki/Cross-origin_resource_sharing

如果您发布的不仅仅是一篇简单的帖子,我建议您使用 js-lib 来处理 jsonrpc,例如:https://github.com/Textalk/jquery.jsonrpcclient.js

【讨论】:

以上是关于如何使用 JavaScript 提交 JSONRPC 请求的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JavaScript 提交表单?

HTML / Javascript:如何提交输入并使用提交/添加更多按钮填充文本区域

如何使用 JavaScript 提交 JSONRPC 请求

使用 JavaScript 提交 FORM 后如何停止打开 ACTION 页面

如何通过单击链接使用 JavaScript 提交表单?

如何使用 Javascript、jQuery 对提交按钮应用多个操作?