pyload インスタンスに URL を簡単に送信するために、Web サイトのクライアント側にボタンを挿入しようとしています。ローカルの jDownloader インスタンスでパッケージを作成するために、すでに同様のことを行っているので、ここからそれほど離れていません。
curl を使用して pyload API との通信に成功しました。
curl -s -d "username=myusername&password=mypassword" -X POST http://MYPYLOADINSTANCE:8000/api/login
これは、当然のことながら、APIを引き続き使用するために必要なセッションIDを返します。
ただし、GM_xmlhttpRequest を使用して Tampermonkey 内から同じ呼び出しを実行しようとすると、responseText 'false' で常に成功します。これは、認証が成功しなかったことを意味します。
GM_xmlhttpRequest ( {
context: { contextData: 'foo', contextData2: 'bar' }, // <- ignore that, only for testing
method: 'POST',
data: 'username=myusername&password=mypassword',
synchronous: false,
url: 'http://MYPYLOADINSTANCE:8000/api/login',
onload: function(responseDetails) { alert(responseDetails.responseText
+ '\n' + responseDetails.context.contextData); },
onerror: function(responseDetails) { alert(responseDetails); },
onabort: function(responseDetails) { alert(responseDetails); }
} );
私の質問は次のとおりです。私は何を間違っていますか、curl の使用と GM_xmlhttpRequest の使用の違い (サーバー/pyload の場合) はどこにありますか? 基本的に同じクエリになるはずだと思いましたか?
いいえ、悲しいことに、pyload-logs には何も表示されません。:-(