そのドキュメントによると、引数の一部としてパラメータGM_xmlhttpRequest
を取ることができるはずです。data
しかし、私はそれを機能させることができないようです。
指定されたパラメーターをエコーする単純なサーバーがあります。
require 'sinatra'
require 'json'
get '/' do
JSON.dump params
end
post '/' do
JSON.dump params
end
そして、いくつかのデータをサーバーに POST しようとする単純なグリースモンキー スクリプトです。URL のクエリ パラメータとして、および postdata としてデータを渡そうとします。
// ==UserScript==
// @name PostDataTest
// @namespace Test
// @description Simple test of GM_xmlhttpRequest's data parameter
// @include http://localhost:4567/
// @version 1
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
// @grant metadata
// @grant GM_xmlhttpRequest
// ==/UserScript==
var url = '/?q0=0&q1=1';
var data = 'd0=0&d1=1'
GM_xmlhttpRequest({ method: 'POST', url: url, data: data, onload: function(r){
console.log('gm:' + r.responseText);
}});
$.post(url, data, function(d,s,r){
console.log('jq:' + r.responseText);
});
jQuery を使用して postdata を POST すると、正常に動作しますが、使用して POST した postdataGM_xmlhttpRequest
は無視されます。
jq:{"q0":"0","q1":"1","d0":"0","d1":"1"}
gm:{"q0":"0","q1":"1"}
これは、私が与えているパラメーターをGM_xmlhttpRequest
実際には使用していないと私に信じさせます。( Firebug で のネットワーク アクティビティをdata
監視できないため、よくわかりません)。GM_xmlhttpRequest
何が起きてる?私は何かを台無しにしましたか?APIはシフトしましたか?GM_xmlhttpRequest
URL にパックせずにデータを投稿するにはどうすればよいですか?