Възможно ли е да изберете цялото съдържание на страницата, след като зареждането на документа е готово и да го изпратите в ajax публикация до друг сървър?
Опитвам се да тествам това, пуснах два php сървъра:
localhost:9000
: Този ще получи данните, изпратени от скрипта на Greasemonkey, и ще ги запише във файл. Тестови код:
index.php
<?php
if (isset($_POST) && count($_POST) > 0) {
file_put_contents("SOMETHING_AND_IT_IS_POST.txt","");
$data = var_export($_POST);
file_put_contents("POSTED.txt",$data);
} else {
file_put_contents("SOMETHING_BUT_NO_POST.txt",$data);
}
localhost:9001
: Имитирайки източника на данни, хоства само html файл
post.html
<html>
<head>
</head>
<body>
<p>Test</p>
<div>
<p> should work</p>
</div>
<!--<form action="" method="post">
<p>Is commenting ok?</p>
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
<input type="submit" value="Submit">
</form> -->
</body>
</html>
Скрипт Greasemonkey:
// ==UserScript==
// @name testajax
// @namespace test
// @include http://localhost:9001/post.html
// @version 1
// @grant none
// @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js
// ==/UserScript==
$( document ).ready(function() {
console.log( "Loaded!" );
GM_xmlhttpRequest({
method: "POST",
url: "http://localhost:9000/index.php",
data: $("body").html(),
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
onload: function(response) {
alert("POSTED!");
}
});
});
И така, в браузъра отварям http://localhost:9001/post.html
, GM скриптът се задейства, console.log работи, но localhost:9000/index.php
не получава нищо.