var body = JSON.stringify(params);
// Create an XMLHttpRequest 'POST' request w/ an optional callback handler
req.open('POST', '/rpc', async);
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
req.setRequestHeader("Content-length", body.length);
req.setRequestHeader("Connection", "close");
if (async) {
req.onreadystatechange = function() {
if(req.readyState == 4 && req.status == 200) {
var response = null;
try {
response = JSON.parse(req.responseText);
} catch (e) {
response = req.responseText;
}
callback(response);
}
};
}
// Make the actual request
req.send(body);
----在服務器端----沒有JSON對象可以被解碼 - RPC POST調用
class RPCHandler(BaseHandler):
'''@user_required'''
def post(self):
RPCmethods = ("UpdateScenario", "DeleteScenario")
logging.info(u'body ' + self.request.body)
args = simplejson.loads(self.request.body)
----獲取對服務器日誌以下錯誤 身體%圖5B%22UpdateScenario%22%2C%22C%22%2C%224.5%22%2C%2230frm%22%2C%22Refinance%22%2C%22100000%22%2C%22740%22%2C%2294538%22%2C% 2250000%22%2C%22%22%2C%22%22%2C%22Fremont%22%2C%22CA%22%5D =
沒有JSON對象可以被解碼:行1列0(char 0) 回溯(最近的通話最後): 文件「/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/_webapp25.py」,行703,在調用 handler.post(* groups) 文件「/ base/data/home/apps/s〜mortgageratealert-staging/1.357912751535215625/main.py「,第418行,後 args = json.loads(self.request.body) 文件」/ base/python_runtime/python_lib/versions/1/simplejson/初始化 py」爲,線388,在負載 回報_default_decoder.decode(S) 文件 「/base/python_runtime/python_lib/versions/1/simplejson/decoder.py」,線路402,在解碼 OBJ, end = self.raw_decode(s,idx = _w(s,0).end()) 文件「/ base/python_runtime/python_lib/versions/1/simplejson/deco der.py」,線420,在raw_decode 提高JSONDecodeError( 「否JSON對象可以被解碼」,S,IDX) JSONDecodeError:否JSON對象可以被解碼:第1行第0列(CHAR 0)
- - 螢火顯示以下---
參數應用程序/ x-WWW窗體-urlencoded [ 「UpdateScenario」, 「C」, 「4 ....
源 [」 UpdateScenario 「」 C 「,」4.5「,」30frm「,」再融資「,」100000「,」740「,」94538「,」50000「,」所有者「,」sfr「,」Fremont「,」CA「]
根據螢火蟲報告和日誌如預期顯示self.request.body。然而simplejson加載不喜歡它。
請幫忙!
謝謝!兩個選項都有效。 – user1307067 2012-04-03 01:42:33
不客氣。請點擊左側「複選標記」旁邊的「0」標記正確的答案。 :} – Albert 2012-04-03 01:46:46