如何使用JavaScript提交JSONRPC请求

4
我是在一个 JSONRPC web服务中工作,正在尝试将请求发送到服务器端以获取响应。基本上,我正在尝试在请求中发送以下详细信息。
methodname//example 899
Language code
Transaction code
User ID
Password
number
Amount

现在我需要提交请求的主机。如果我通过telnet连接主机和端口,它能够成功连接。但是当我试图通过浏览器提交请求时,我遇到了一些net::ERR_CONNECTION_CLOSED的问题。我不确定为什么会出现这种情况。

我对我提交的请求不确定,但是以下是我使用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. 我提供的参数层次结构是什么?

非常感谢您的帮助。

1个回答

1

您的jsonrpc服务器是否接受HTTP GET请求?如果您的jsonrpc服务器支持http,则更常见的方法是使用POST传输jsonrpc请求数据。

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

我猜您应该发起一个POST请求。数据看起来正确,但这完全取决于jsonrpc服务器。有通常的方法可以通过http传输jsonrpc,但它不是协议本身的一部分。

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

如果您要进行多个简单的发布,则建议使用处理jsonrpc的js库,例如:https://github.com/Textalk/jquery.jsonrpcclient.js


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接