如何使用 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 请求的主要内容,如果未能解决你的问题,请参考以下文章
HTML / Javascript:如何提交输入并使用提交/添加更多按钮填充文本区域