mozilla

Compare Revisions

Connecting to Remote Content

Change Revisions

Revision 94724:

Revision 94724 by Jorge.villalobos on

Revision 94725:

Revision 94725 by shimil on

Title:
Connecting to Remote Content
Connecting to Remote Content
Slug:
XUL_School/Connecting_to_Remote_Content
XUL_School/Connecting_to_Remote_Content
Content:

Revision 94724
Revision 94725
n11      Using XMLHttpRequestn11      Using XML http request
n14      <a href="/en/XMLHttpRequest" title="en/XMLHttpRequest">XMLHn14      <a href="/en/XMLHttpRequest" title="en/XMLHttpRequest">XML 
>ttpRequest</a> is an API for transferring XML between a local scr>http request</a> is an API for transferring XML between a local s
>ipt and a remote server via HTTP. It's an integral part of the mo>cript and a remote server via HTTP. It's an integral part of the 
>dern web, and all major browsers support it. Besides XML, it can >modern web, and all major browsers support it. Besides XML, it ca
>be used to retrieve data in other formats, e.g. JSON, HTML and pl>n be used to retrieve data in other formats, e.g. JSON, HTML and 
>ain text. In this section we'll look into the XML and JSON commun>plain text. In this section we'll look into the XML and JSON comm
>ication mechanisms.>unication mechanisms.
n38      In this example we demonstrate how to make a XMLHttpRequestn38      In this example we demonstrate how to make a XML http reque
> call in aynchronous mode. You can see that an instance of the XM>st call in asynchronous mode. You can see that an instance of the
>LHttpRequest class is created and it holds all functionality for > XML http request class is created and it holds all functionality
>making a request. We create this instance using XPCOM instead of > for making a request. We create this instance using XPCOM instea
>the usual way (<code>new XMLHttpRequest()</code>) because this wa>d of the usual way (<code>new XML http request()</code>) because 
>y works both in chrome and non-chrome code.>this way works both in chrome and non-chrome code.
39    </p>
40    <p>39    </p>
41      Following initialization, <em>onload</em> and <em>onerror</
>em> handlers are registered to a callback function to handle the  
>response returned from the remote server. In both cases <em>aEven 
>t.target</em> is an <a href="/en/nsIXMLHttpRequest" title="en/nsI 
>XMLHttpRequest">nsIXMLHttpRequest</a>. In the <em>onload</em> cal 
>lback function, the <em>responseText</em> parameter contains the  
>server response as text. 
42    </p>40    <p>
41      Following initialization, <em>on load</em> and <em>on error
 ></em> handlers are registered to a callback function to handle th
 >e response returned from the remote server. In both cases <em>a E
 >vent.target</em> is an <a href="/en/nsIXMLHttpRequest" title="en/
 >nsIXMLHttpRequest">nsIXMLHttpRequest</a>. In the <em>on load</em>
 > callback function, the <em>response text</em> parameter contains
 > the server response as text.
43    <p>42    </p>
43    <p>
44      If the response is an XML document, the <em>responseXML</em44      If the response is an XML document, the <em>response XML</e
>> property will hold an XMLDocument object that can be manipulate>m> property will hold an XML document object that can be manipula
>d using DOM methods. Sometimes the server doesn't specify an XML >ted using DOM methods. Sometimes the server doesn't specify an XM
>Content-Type header, which is necessary for the XML parsing to ha>L Content-Type header, which is necessary for the XML parsing to 
>ppen automatically. You can use <em>overrideMimeType</em> to forc>happen automatically. You can use <em>over ride mime type</em> to
>e the response to be parsed as XML.> force the response to be parsed as XML.
n72          Requests can take a long time to process and you don't n72          Requests can take a long time to process and you don't 
>want users to be stuck waiting while a request is obtained and pr>want users to be stuck waiting while a request is obtained and pr
>ocessed. Therefore, <strong>it is very important that XMLHttpRequ>ocessed. Therefore, <strong>it is very important that XML http re
>est calls are always done asynchronously</strong>.>quest calls are always done asynchronously</strong>.
n99      When the <em>onload</em> callback function is called, the rn99      When the <em>on load</em> callback function is called, the 
>esponse text is converted into a JS object using the <em>parse</e>response text is converted into a&nbsp; JS object using the <em>p
>m> method. You can then use this object like any other JavaScript>arse</em> method. You can then use this object like any other Jav
> objects in your code.>aScript objects in your code.
n150      When a valid XML response comes back from the remote servern150      When a valid XML response comes back from the remote server
>, the XML document object can be manipulated using different DOM >, the XML document object can be manipulated using different DOM 
>methods, to display the data in the UI or store it into a local d>methods, to display the data in the UI or store it into a local d
>atasource.>ata source.
n197      <a href="/en/XSLT" title="en/XSLT">XSLT</a> (eXtensible Styn197      <a href="/en/XSLT" title="en/XSLT">XSLT</a> (eXtensible Sty
>lesheet Language Transformations) is another tool used to manipul>lesheet Language Transformations) is another tool used to manipul
>ate XML documents and transform them into other forms of text out>ate XML documents and transform them into other forms of text out
>put, such as HTML, XUL, etc.>put, such as HTML, XUL (XML User Interface Language) , etc.
n203      First you need to create an XSLT stylesheet that acts as a n203      First you need to create an XSLT stylesheet that acts as a 
>template. This template will transform the XML you receive (in ou>template. This template will transform the XML you receive (in ou
>r case, the example XML document above) and convert it into XUL. >r case, the example XML document above) and convert it into XUL. 
>The <a class=" external" href="http://www.w3schools.com/xsl/">XSL>The <a class="external" href="http://www.w3schools.com/xsl/">XSLT
>T tutorial</a> contains details for building these templates.> tutorial</a> contains details for building these templates.
n264      Finally, you can either use <a href="/en/XPCOM_Interface_Ren264      Finally, you can either use <a href="/en/XPCOM_Interface_Re
>ference/nsIXSLTProcessor#transformToDocument.28.29" title="en/XPC>ference/nsIXSLTProcessor#transformToDocument.28.29" title="en/XPC
>OM Interface Reference/nsIXSLTProcessor#transformToDocument.28.29>OM Interface Reference/nsIXSLTProcessor#transformToDocument.28.29
>">transformToDocument</a> or <a href="/en/XPCOM_Interface_Referen>">transformToDocument</a> or <a href="/en/XPCOM_Interface_Referen
>ce/nsIXSLTProcessor#transformToFragment.28.29" title="en/XPCOM In>ce/nsIXSLTProcessor#transformToFragment.28.29" title="en/XPCOM In
>terface Reference/nsIXSLTProcessor#transformToFragment.28.29">tra>terface Reference/nsIXSLTProcessor#transformToFragment.28.29">tra
>nsformToFragment</a> methods to transform the XML document. The <>nsformToFragment</a> methods to transform the XML document. The <
>em>transformToDocument</em> method returns a DOM Document with th>em>transform to document</em> method returns a DOM Document with 
>e results of the transformation, whereas, the <em>transformToFrag>the results of the transformation, whereas, the <em>transform to 
>ment</em> method returns a DOM DocumentFragment node. In this exa>fragment</em> method returns a DOM document fragment node. In thi
>mple code, the first child of the XUL document is appended to a X>s example code, the first child of the XUL document is appended t
>UL element after the transformation.>o a XUL element after the transformation.
n306      When you start debugging HTTP requests, you may find it harn306      When you start debugging HTTP requests, you may find it har
>d to know exactly what data was sent, especially with POST data. >d to know exactly what data was sent, especially with POST data. 
>We recommend you to use extensions like <a class=" link-https" hr>We recommend you to use extensions like <a class="link-https" hre
>ef="https://addons.mozilla.org/en-US/firefox/addon/966">Tamper Da>f="https://addons.mozilla.org/en-US/firefox/addon/966">Tamper Dat
>ta</a>. They help you to track HTTP/HTTPS requests and responses >a</a>. They help you to track HTTP/HTTPS requests and responses o
>occurring in Firefox.>ccurring in Firefox.
n318      Once you open the Tamper Data view, all requests and responn318      Once you open the Tamper Data view, all requests and respon
>ses will begin to appear in it. You can discover some interesting>ses will begin to appear in it. You can discover some interesting
> things about Firefox like this, such as the automatic update URL> things about Firefox like this, such as the automatic update UR 
>s for extensions, and the behavior of web applications such as Gm>s for extensions, and the behavior of web applications such as G-
>ail.>mail.
t324      A tutorial on Tamper Data can be found <a class=" external"t324      A tutorial on Tamper Data can be found <a class="external" 
> href="http://www.jimbojw.com/wiki/index.php?title=Tamper_Data">h>href="http://www.jimbojw.com/wiki/index.php?title=Tamper_Data">he
>ere</a>.>re</a>.
325    </p>
326    <p>325    </p>
326    <p>
327      {{ PreviousNext("XUL_School/Intercepting_Page_Loads", "XUL_327      {{ Previous Next("XUL_School/Intercepting_Page_Loads", "XUL
>School/Custom_XUL_Elements_with_XBL") }}>_School/Custom_XUL_Elements_with_XBL") }}

Back to History