Trying to send data to a different domain. I am currently working on localhost.
I tried to keep it as simple as possible for now
js:
window.onbeforeunload = function() {
var url = "http://localhost/web/x/boot/ajax/x.php?";
$.post(url, { thing: "value" }, function(data) {});
};
Chrome shows this request in the Developer Tools > Timeline
as:
Self Time: 0
Start Time: 6 ms
Resource: localhost/web/x/boot/ajax/x.php?
Request Method: POST
Call Stack:
send @ jquery.min.js:4
m.extend.ajax @ jquery.min.js:4
m.(anonymous function) @ jquery.min.js:4
window.onbeforeunload @ x.js:249
and my most simple php file to record any loading:
<?php
//include 'config.php';
$handle = fopen('temp.txt','w') or die('Cannot open file: ');
fwrite($handle, 'hit');
fclose($handle);
exit();
?>
The file doesn't get hit for some reason. If I copy the url from the Chrome request above and paste it in, that works.
Does the PHP file it's hitting need all the normal HTML tags etc? Could that be the issue?
$.post(url,{},function(res){
alert('successful');
}).error(function(xhr,textStatus,error){
alert(xhr.statusText + "\n" + textStatus + "\n" + error +"." );
});
Returns an error:
<blank>
error
error
.
Got it. Not using jQuery, post, or ajax. Returning to javascript to make a HTTP request. I do not want to load the data on the webpage. I am actually sending data when the user leaves the page.
The following hits and creates the file I've mentioned above
window.onbeforeunload = function() {
//... create params
var XHR = new XMLHttpRequest();
XHR.open('POST', "http://localhost/web/x/boot/ajax/x.php?", false);
//XHR.open('POST', "http://127.0.0.1/web/x/boot/ajax/x.php?", false); // also works
//XHR.open('POST', "http://{ip-address}/web/x/boot/ajax/x.php?", false); // also works
XHR.send(params);
}
Params are being sent. Just gotta figure out how to deal with it now :p
Thanks anyways!