Я пытался понять это в течение 2 дней. Я пробовал каждую библиотеку JSONRPC, но никто из них не работал, поэтому я прибегал к этому самому.JQuery Ajax to JSONRPC Proxy
Я делаю простой AJAX вызов прокси - написанный на PHP - и POST запрос JSON:
$.ajax({
url: "includes/buoybay_proxy.php",
dataType: "json",
data: {"method": "Test", "params": ["113f8ba8*****************9b5f27e0a0bb"], "id": 1},
timeout: 5000,
type: 'POST',
success: function(data, status, XHR){
console.log("!!: " + JSON.stringify(data));
},
error: function(jqXHR, textStatus, errorThrown) {
console.log("??: ", textStatus, errorThrown);
}
});
прокси - написано в PHP - работает следующим образом:
$con = json_encode($_POST);
$cparams = array(
'http' => array(
'content' => $con,
'method' => 'POST',
'ignore_errors' => true,
'header' => 'POST /studs/**************/server.php HTTP/1.0\r\n
User-Agent: "User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1468.0 Safari/537.36\r\n"
Host: my.wamp.server:80\r\n
Accept-Charset: UTF-8,ISO-8859-1,US-ASCII\r\n
Content-Type: application/json\r\n
Content-Length: ' . strlen($con) . '\r\n'
)
);
//ChromePhp::log($cparams);
$context = stream_context_create($cparams);
$fp = fopen('http://mw.buoybay.org:80/studs/**************/server.php', 'r', false, $context);
//ChromePhp::log(stream_get_contents(($fp)));
echo json_encode(stream_get_contents(($fp)));
Это приводит к следующему сообщению об ошибке с сервера:
{"id": null, "error": { "faultCode": 15, "faultString": "Invalid request payload Invalid data (empty string?)" }, "result": null}
Я просто из идей; может ли кто-нибудь исправить это или по крайней мере указать мне в правильном направлении?