如何使用JavaScript提交JSONRPC请求

时间:2015-03-26 08:58:20

标签: javascript jquery json-rpc

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

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>

根据上述脚本,我试图找到以下问题的答案。

  1. 我上面提交的请求是否有效?
  2. 如果上述声明错误,我如何提供URL值?
  3. 我上面提供的类型是否合适?
  4. 请验证所有参数,并告诉我所有参数是否有效。
  5. 我在上面提供的参数的层次结构是什么?
  6. 真的很感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

您的jsonrpc服务器是否接受HTTP GET请求?如果您的jsonrpc服务器完全支持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