summaryrefslogtreecommitdiff
path: root/addons/base/static
diff options
context:
space:
mode:
authorAntony Lesuisse <al@openerp.com>2011-03-17 16:47:46 +0100
committerAntony Lesuisse <al@openerp.com>2011-03-17 16:47:46 +0100
commitd51d885c77fa2a9eb53c879ca080b78ab35ebf7b (patch)
tree496df7a4d08217565929d20310c2c7379a2575d0 /addons/base/static
parente14677f2552b32836e183f1387026fac8b36f1bd (diff)
parent6e9014a8794ca23e457bf69642e695cbe5ae337c (diff)
[MERGE] xmo compliant json-rpc2
bzr revid: al@openerp.com-20110317154746-7mbwuqt9gk940mra
Diffstat (limited to 'addons/base/static')
-rw-r--r--addons/base/static/openerp/js/base_chrome.js25
1 files changed, 13 insertions, 12 deletions
diff --git a/addons/base/static/openerp/js/base_chrome.js b/addons/base/static/openerp/js/base_chrome.js
index 53256f7d260..dedab94eeab 100644
--- a/addons/base/static/openerp/js/base_chrome.js
+++ b/addons/base/static/openerp/js/base_chrome.js
@@ -143,27 +143,28 @@ openerp.base.Session = openerp.base.BasicController.extend({
// Construct a JSON-RPC2 request, method is currently unused
params.session_id = this.session_id;
params.context = typeof(params.context) != "undefined" ? params.context : this.context;
- var request = { jsonrpc: "2.0", method: "call", params: params, "id":null };
-
- // This is a violation of the JSON-RPC2 over HTTP protocol
- // specification but i don't know how to parse the raw POST content from
- // cherrypy so i use a POST form with one variable named request
- var post = { request: JSON.stringify(request) };
// Use a default error handler unless defined
error_callback = typeof(error_callback) != "undefined" ? error_callback : this.on_rpc_error;
// Call using the rpc_mode
- this.rpc_ajax(url, post, success_callback, error_callback);
- },
- rpc_ajax: function(url, post, success_callback, error_callback) {
+ this.rpc_ajax(url, {
+ jsonrpc: "2.0",
+ method: "call",
+ params: params,
+ id:null
+ }, success_callback, error_callback);
+ },
+ rpc_ajax: function(url, payload, success_callback, error_callback) {
var self = this;
this.on_rpc_request();
$.ajax({
type: "POST",
url: url,
dataType: 'json',
- data: post,
+ contentType: 'application/json',
+ data: JSON.stringify(payload),
+ processData: false,
success: function(response, textStatus, jqXHR) {
self.on_rpc_response();
if (response.error) {
@@ -182,7 +183,7 @@ openerp.base.Session = openerp.base.BasicController.extend({
error: function(jqXHR, textStatus, errorThrown) {
self.on_rpc_response();
var error = {
- code: 1,
+ code: -32098,
message: "XmlHttpRequestError " + errorThrown,
data: {type: "xhr"+textStatus, debug: jqXHR.responseText, objects: [jqXHR, errorThrown] }
};
@@ -196,7 +197,7 @@ openerp.base.Session = openerp.base.BasicController.extend({
},
on_rpc_error: function(error) {
// TODO this should use the $element with focus and button is displaying OPW etc...
- this.on_log(error, error.message, error.data.type, error.data.debug);
+ this.on_log(error.message, error.data);
},
on_session_invalid: function(contination) {
},