GM.xmlHttpRequest: Difference between revisions

From GreaseSpot Wiki
Jump to navigationJump to search
Marti (talk | contribs)
Marti (talk | contribs)
m Misc formatting and commenting
Line 48: Line 48:
==== <code>url</code> ====
==== <code>url</code> ====
:Value: String
:Value: String
:Usage: <code>details.'''url''' = "<nowiki>http://www.greasespot.net/</nowiki>"';</code>
:Usage: <code>details.'''url''' = "<nowiki>http://www.greasespot.net/</nowiki>";</code>


[[#top|top]] | [[#Syntax|back]]
[[#top|top]] | [[#Syntax|back]]
Line 70: Line 70:
==== <code>data</code> ====
==== <code>data</code> ====
:Value: String
:Value: String
:Usage: <code>details.'''data''' = null; ''/* Some code */'' if (details.'''data''') { ''/* Some code */'' }</code>
:Usage: <code>details.'''data''' = null; ''/* some code */'' if (details.'''data''') { ''/* some code */'' }</code>
:* <sup>[[#Notes|[1]]]</sup>
:* <sup>[[#Notes|[1]]]</sup>


Line 78: Line 78:
----
----
==== onload ====
==== onload ====
:Usage: <code>details.'''onload''' = function (''response'') { // ''Some code'' };</code>
:Usage: <code>details.'''onload''' = function (''response'') { ''/* some code */'' };</code>
:Returns: Nothing, response Object
:Returns: Nothing, response Object


Line 84: Line 84:


==== onreadystatechange ====
==== onreadystatechange ====
:Usage: <code>details.'''onreadystatechange''' = function (''response'') { // ''Some code'' };</code>
:Usage: <code>details.'''onreadystatechange''' = function (''response'') { ''/* some code */'' };</code>
:Returns: Nothing, response Object
:Returns: Nothing, response Object


Line 90: Line 90:


==== onerror ====
==== onerror ====
:Usage: <code>details.'''onerror''' = function (''response'') { // ''Some code'' };</code>
:Usage: <code>details.'''onerror''' = function (''response'') { ''/* some code */'' };</code>
:Returns: Nothing, response Object
:Returns: Nothing, response Object


Line 119: Line 119:
==== status ====
==== status ====
:Value: Number
:Value: Number
:Usage: <code>if (response.'''status''' == 200) { ''//Some code'' };</code>
:Usage: <code>if (response.'''status''' == 200) { ''/* some code */'' }</code>


[[#top|top]] | [[#Event_Handler_Callbacks|back]]
[[#top|top]] | [[#Event_Handler_Callbacks|back]]
Line 125: Line 125:
==== statusText ====
==== statusText ====
:Value: String
:Value: String
:Usage: <code>if (response.'''statusText''' == "OK") { ''//Some code'' };</code>
:Usage: <code>if (response.'''statusText''' == "OK") { ''/* some code */'' }</code>


[[#top|top]] | [[#Event_Handler_Callbacks|back]]
[[#top|top]] | [[#Event_Handler_Callbacks|back]]
Line 131: Line 131:
==== readyState ====
==== readyState ====
:Value: Number
:Value: Number
:Usage: <code>if (response.'''readyState''' == 4) { ''//Some code'' };</code>
:Usage: <code>if (response.'''readyState''' == 4) { ''/* some code */'' }</code>


[[#top|top]] | [[#Event_Handler_Callbacks|back]]
[[#top|top]] | [[#Event_Handler_Callbacks|back]]
Line 137: Line 137:
==== responseHeaders ====
==== responseHeaders ====
:Value: String
:Value: String
:Usage: <code>if (response.'''responseHeaders''') { ''//Some code'' };</code>
:Usage: <code>if (response.'''responseHeaders''') { ''/* some code */'' }</code>


:* The <code>responseHeaders</code> is the string representation of response headers returned by <code>XMLHTTPRequest.getAllResponseHeaders()</code>.
:* The <code>responseHeaders</code> is the string representation of response headers returned by <code>XMLHTTPRequest.getAllResponseHeaders()</code>.

Revision as of 23:15, 9 December 2007

Template:Underscore


Description

This API method provides access to the chrome-privileged XMLHttpRequest object. This means that it is possible to issue requests to domains other than that of the current page.

Additional reference may be found at:

Examples | Notes

Syntax

GM_xmlhttpRequest( details )

Value: Function
Returns: Nothing, details Object
Compatibility: Greasemonkey 0.2.5+
details Object
Properties Event Handler Callbacks
method onload
url onreadystatechange
headers onerror
overrideMimeType
data
  • All properties and event handler callbacks are optional except method and url.

top

Properties


method

Value: String
Usage: details.method = "GET"';

top | back

url

Value: String
Usage: details.url = "http://www.greasespot.net/";

top | back

headers

Value: Object
Usage: details.headers = {"User-Agent":"Mozilla/5.0"};
  • The headers property is an object which is typically used to override the default browser generated headers, also known as atoms. It should contain the atom-value pairs of the headers to send.[2]

top | back

overrideMimeType

Value: String
Compatibility: Greasemonkey 0.6.8+
Usage: details.overrideMimeType = "text/html; charset=ISO-8859-1";
  • While each character set name may have multiple aliases defined, there may be a preferred name which can be found at IANA

top | back

data

Value: String
Usage: details.data = null; /* some code */ if (details.data) { /* some code */ }

top | back

Event Handler Callbacks


onload

Usage: details.onload = function (response) { /* some code */ };
Returns: Nothing, response Object

top | back

onreadystatechange

Usage: details.onreadystatechange = function (response) { /* some code */ };
Returns: Nothing, response Object

top | back

onerror

Usage: details.onerror = function (response) { /* some code */ };
Returns: Nothing, response Object

top | back

response Object
Properties Event Handler Callbacks
responseText
status
statusText
readyState
responseHeaders

Properties


responseText

Value: String
Usage: alert(response.responseText);

top | back

status

Value: Number
Usage: if (response.status == 200) { /* some code */ }

top | back

statusText

Value: String
Usage: if (response.statusText == "OK") { /* some code */ }

top | back

readyState

Value: Number
Usage: if (response.readyState == 4) { /* some code */ }

top | back

responseHeaders

Value: String
Usage: if (response.responseHeaders) { /* some code */ }
  • The responseHeaders is the string representation of response headers returned by XMLHTTPRequest.getAllResponseHeaders().

top | back

Examples

 GM_xmlhttpRequest({
   method:"GET",
   url:"http://www.greasespot.net/",
   headers:{
     "User-Agent":"Mozilla/5.0",            // Recommend using navigator.userAgent when possible
     "Accept":"text/xml"
   },
   onload:function(response) {
     alert([
       response.status,
       response.statusText,
       response.readyState,
       response.responseHeaders,
       response.responseText
     ].join("\n"));
   }
 });

top

Notes

[1]Some users have reported problems with international character sets. See these mailing list threads

[2]Some header atoms may not actually work through GM_xmlhttpRequest. The Referer atom is one that is known to be recognized but appears to be content filtered by the browser. This may be due to security restrictions to keep user scripts from doing unsafe things.

top