Properties Methods Events Config Options Direct Link
Observable
  Proxy
    ServerProxy
      ScriptTagProxy

Class Ext.data.ScriptTagProxy

Package:Ext.data
Defined In:ScriptTagProxy.js
Class:ScriptTagProxy
Extends:ServerProxy

An implementation of Ext.data.DataProxy that reads a data object from a URL which may be in a domain other than the originating domain of the running page.

Note that if you are retrieving data from a page that is in a domain that is NOT the same as the originating domain of the running page, you must use this class, rather than HttpProxy.

The content passed back from a server resource requested by a ScriptTagProxy must be executable JavaScript source code because it is used as the source inside a <script> tag.

In order for the browser to process the returned data, the server must wrap the data object with a call to a callback function, the name of which is passed as a parameter by the ScriptTagProxy. Below is a Java example for a servlet which returns data for either a ScriptTagProxy, or an HttpProxy depending on whether the callback name was passed:

boolean scriptTag = false;
String cb = request.getParameter("callback");
if (cb != null) {
    scriptTag = true;
    response.setContentType("text/javascript");
} else {
    response.setContentType("application/x-json");
}
Writer out = response.getWriter();
if (scriptTag) {
    out.write(cb + "(");
}
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);

Config Options

Config OptionsDefined By
 autoAppendParams : Boolean
True to automatically append the request's params to the generated url. Defaults to true
ScriptTagProxy
 cacheString : String
The name of the cache param added to the url when using noCache (defaults to "_dc")
ServerProxy
 defaultReaderType : String
The default registered reader type. Defaults to 'json'
Proxy
 defaultWriterType : String
The default registered writer type. Defaults to 'json'
Proxy
 noCache : Boolean
Defaults to true. Disable caching by adding a unique parameter name to the request.
ServerProxy
 scriptIdPrefix : String
The prefix string that is used to create a unique ID for the injected script tag element (defaults to 'stcScript')
ScriptTagProxy
 timeout : Number
The number of milliseconds to wait for a response. Defaults to 30 seconds.
ServerProxy
 url : String
The URL from which to request the data object.
ServerProxy

Public Properties

PropertyDefined By
 lastRequest : Ext.data.Request
Reference to the most recent request made through this Proxy. Used internally to clean up when the Proxy is destroyed
ScriptTagProxy

Public Methods

MethodDefined By

Public Events

EventDefined By