X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/c930e9176a5a85509c5b0230e2bff5c22a591432..2e847cf21b8ab9d15fa167b315ca5b2fa92638fc:/docs/source/ScriptTagProxy.html diff --git a/docs/source/ScriptTagProxy.html b/docs/source/ScriptTagProxy.html index 8b3b4f1f..a26bf6e5 100644 --- a/docs/source/ScriptTagProxy.html +++ b/docs/source/ScriptTagProxy.html @@ -1,5 +1,6 @@ + The source code @@ -39,6 +40,32 @@ out.print(dataBlock.toJsonString()); if (scriptTag) { out.write(");"); } + + *

Below is a PHP example to do the same thing:


+$callback = $_REQUEST['callback'];
+
+// Create the output object.
+$output = array('a' => 'Apple', 'b' => 'Banana');
+
+//start output
+if ($callback) {
+    header('Content-Type: text/javascript');
+    echo $callback . '(' . json_encode($output) . ');';
+} else {
+    header('Content-Type: application/x-json');
+    echo json_encode($output);
+}
+
+ *

Below is the ASP.Net code to do the same thing:


+String jsonString = "{success: true}";
+String cb = Request.Params.Get("callback");
+String responseString = "";
+if (!String.IsNullOrEmpty(cb)) {
+    responseString = cb + "(" + jsonString + ")";
+} else {
+    responseString = jsonString;
+}
+Response.Write(responseString);
 
* * @constructor @@ -109,7 +136,7 @@ Ext.extend(Ext.data.ScriptTagProxy, Ext.data.DataProxy, { *
  • The "arg" argument from the load function
  • *
  • A boolean success indicator
  • * - * @param {Object} scope The scope in which to call the callback + * @param {Object} scope The scope (this reference) in which the callback function is executed. Defaults to the browser window. * @param {Object} arg An optional argument which is passed to the callback as its second parameter. */ doRequest : function(action, rs, params, reader, callback, scope, arg) { @@ -167,12 +194,12 @@ Ext.extend(Ext.data.ScriptTagProxy, Ext.data.DataProxy, { } }; }, - /** +
    /** * Callback for read actions * @param {String} action [Ext.data.Api.actions.create|read|update|destroy] * @param {Object} trans The request transaction object * @param {Object} res The server response - * @private + * @protected */ onRead : function(action, trans, res) { var result; @@ -196,30 +223,30 @@ Ext.extend(Ext.data.ScriptTagProxy, Ext.data.DataProxy, { } trans.callback.call(trans.scope||window, result, trans.arg, result.success); }, - /** +
    /** * Callback for write actions * @param {String} action [Ext.data.Api.actions.create|read|update|destroy] * @param {Object} trans The request transaction object * @param {Object} res The server response - * @private + * @protected */ - onWrite : function(action, trans, res, rs) { + onWrite : function(action, trans, response, rs) { var reader = trans.reader; try { // though we already have a response object here in STP, run through readResponse to catch any meta-data exceptions. - reader.readResponse(action, res); + var res = reader.readResponse(action, response); } catch (e) { this.fireEvent('exception', this, 'response', action, trans, res, e); trans.callback.call(trans.scope||window, null, res, false); return; } - if(!res[reader.meta.successProperty] === true){ + if(!res.success === true){ this.fireEvent('exception', this, 'remote', action, trans, res, rs); trans.callback.call(trans.scope||window, null, res, false); return; } - this.fireEvent("write", this, action, res[reader.meta.root], res, rs, trans.arg ); - trans.callback.call(trans.scope||window, res[reader.meta.root], res, true); + this.fireEvent("write", this, action, res.data, res, rs, trans.arg ); + trans.callback.call(trans.scope||window, res.data, res, true); }, // private