Параметр data
работает только для методов POST
.Если вы хотите отправить данные с помощью запроса GET
, добавьте его по URL-адресу:
GM_xmlhttpRequest ( {
method: "GET",
url: "http://www.amitpatil.me/demos/ytube.php?username=johndoe&password=xyz123",
// Use no data: argument with a GET request.
... ...
} );
Но по разным причинам отправлять данные лучше через POST
.Для этого вам необходимо указать кодировку:
GM_xmlhttpRequest ( {
method: "POST",
url: "http://www.amitpatil.me/demos/ytube.php",
data: "username=johndoe&password=xyz123",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
"User-Agent": "Mozilla/5.0", // If not specified, navigator.userAgent will be used.
"Accept": "text/xml" // If not specified, browser defaults will be used.
},
... ...
} );
Если вы собираетесь отправлять много данных или сложные данные, используйте JSON:
var ajaxDataObj = {
u: username,
p: password,
vidInfo: [123, "LOLcats Terrorize City!", "Five stars"]
};
var serializedData = JSON.stringify (ajaxDataObj);
GM_xmlhttpRequest ( {
method: "POST",
url: "http://www.amitpatil.me/demos/ytube.php",
data: serializedData,
headers: {
"Content-Type": "application/json",
"User-Agent": "Mozilla/5.0", // If not specified, navigator.userAgent will be used.
"Accept": "text/xml" // If not specified, browser defaults will be used.
},
... ...
} );
Ваш PHP будет обращаться к нему так:
$jsonData = json_decode($HTTP_RAW_POST_DATA);
Обновление:
Greasemonkey и Tampermonkey теперь требуют, чтобы вы установили @grant GM_xmlhttpRequest
в блоке метаданных.Обязательно сделайте это.