GM.xmlHttpRequest

From GreaseSpot Wiki
Revision as of 20:02, 4 December 2007 by Marti (talk | contribs) (→‎Examples)
Jump to navigationJump to search

Template:Underscore

Syntax

GM_xmlhttpRequest( details )

Description

This API 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.

The details parameter is an object having the following properties: method, url, headers, onload, onreadystatechange, onerror, data, overrideMimeType. All fields are optional except method and url. The headers field is an object which should contain the name-value pairs of the headers to send, for instance {"User-Agent":"Mozilla"}. The onload, onreadystatechange, and onerror parameters are callback functions which are called when the corresponding events occur.

Callback functions should accept a single object parameter having the following properties: responseText, status, statusText, readyState, and responseHeaders. The responseHeaders is the string representation of response headers returned by XMLHTTPRequest.getAllResponseHeaders().

Examples

GM_xmlhttpRequest({
  method:"GET",
  url:"http://youngpup.net/",
  headers:{
    "User-Agent":"monkeyagent",        // Recommend using window.location.href when possible
    "Accept":"text/monkey,text/xml"
  },
  onload:function(details) {
    alert([
      details.status,
      details.statusText,
      details.readyState,
      details.responseHeaders,
      details.responseText
    ].join("\n"));
  }
});

Notes

Note that some attributes may not actually work through GM_xmlhttpRequest. The referer tag is one that is known to be recognized but not passed properly. This may be due to security restrictions to keep user scripts from doing unsafe things. Reference here: http://groups.google.com/group/greasemonkey-dev/browse_thread/thread/77c94cc17c6b2669

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

The overrideMimeType parameter became available in version 0.6.8.