2015-04-01 26 views
1

這與問題極爲相似,EG:Request to Random.org API with ZendFramework2
但是,我認爲我的問題存在於我的數據請求中。UsersScript AJAX請求給出JSON-RPC錯誤-32700

GM_xmlhttpRequest({ 
    method: "POST", 
    url: "https://api.random.org/json-rpc/1/invoke", 
    data: { 
     "jsonrpc": "2.0", 
     "method": "generateDecimalFractions", 
     "params": "{\"apiKey\": \"d2319b89-8389-4d24-b1eb-4dbd80009153\",\"n\": 10,\"decimalPlaces\": 8,\"replacement\": true}", 
     "id": 15324815 
    }, 
    headers:{ 
     "Content-Type": "application/json-rpc" 
    }, 
    onload: function(response) { 
     console.log(response); 
    } 
}); 

我得到的錯誤是:

finalUrl: 「HTTPS://api.random.org/json-rpc/1/invoke」
的readyState:4
響應:「{」jsonrpc「:」2.0「,」error「:{」code「:-32700,」message「:」Parse error「,」data「:null},」id「:null}」
responseHeaders: 「日期:2015年4月1日星期三02:34:08 GMT?服務器:Apache/2.2.22(Debian)?X-Powered-By:PHP/5.4.39-0 + deb7u2?Content-Type:application/json; charset = utf-8?Access-Control-Allow-Origin:
*?連接:保持活動?訪問控制 - 允許 - 標題:起源,X請求 - 有,內容類型,接受?Content-Length:87?Keep-Alive:timeout = 15,max = 200? 「
responseText:「{」jsonrpc「:」2.0「,」error「:{」code「:-32700,」message「:」Parse error「,」data「:null},」id「:null}」
的responseXML:空
狀態:200
狀態文本: 「OK」

所以我相當肯定的問題是在我的JSON請求。我希望有更多JSON-RPC經驗的人可以幫助我指出正確的方向。

回答

0

您需要正確的JSON發送之前的數據進行編碼:

var encodedData = JSON.stringify ({ 
    "jsonrpc": "2.0", 
    "method": "generateDecimalFractions", 
    "params": {apiKey: "d2319b89-8389-4d24-b1eb-4dbd80009153", n: 10, decimalPlaces: 8, replacement: true}, 
    "id": 15324815 
}); 

GM_xmlhttpRequest ({ 
    method:  "POST", 
    url:  "https://api.random.org/json-rpc/1/invoke", 
    data:  encodedData, 
    headers: { 
     "Content-Type": "application/json" 
    }, 
    onload:  function (response) { 
     console.log (response); 
    } 
}); 
+1

謝謝,就像一個夢。 – Baskervor 2015-04-02 14:51:38

+0

不客氣,樂意效勞。 – 2015-04-02 22:38:58