I am trying to make an ajax call to a server in my local network installed with LAMP who is running wordpress. I am currently doing changes to files in a wordpress plugin.
I want to call a php file located into my server to get json data to build a chart from a sql request.
So I have ajaxStatistics.php where I coded the sql request and the json encode.
Now I am in statistics.js where I have my function to build a chart and this is where I do the ajax call :
jQuery(function() {
/**
* call the ajaxStats.php file to fetch the result from db table.
*/
$.ajax({
url : "192.168.1.100/wp-content/plugins/pluginname/ajaxStatistics.php",
type : "GET",
success : function(data){
console.log(data);
...
The result is an Uncaught TypeError: Cannot read property 'ajax' of undefined
at HTMLDocument.<anonymous> (statistics.js:92)
at i (jquery.js?ver=1.12.4:2)
at Object.fireWith [as resolveWith] (jquery.js?ver=1.12.4:2)
at Function.ready (jquery.js?ver=1.12.4:2)
at HTMLDocument.K (jquery.js?ver=1.12.4:2)
You are trying to access $ as jQuery before it gets initialized so to make it in proper way, you can use DOM load event of it like so...
$(document).ready(function(){
function build_statistics() {
$.ajax({
url : "http://192.168.1.100/wp-content/plugins/pluginname/ajaxStatistics.php",
type : "GET",
success : function(data){
console.log(data);
}
}
});
And then call it like
build_statistics()
That means that jquery has not been loaded.
Make sure that you have the script in your html, and also wrap the call to this function sendData inside a
$(document).ready(function(){
//do stuff
})
It seems like your $
variable is unreachable in your code.
Try this:
jQuery(function() {
/**
* call the ajaxStats.php file to fetch the result from db table.
*/
var $ = jQuery;
$.ajax({
url : "http://192.168.1.100/wp-content/plugins/pluginname/ajaxStatistics.php",
type : "GET",
success : function(data){
console.log(data);
...
And also make sure to add a http
or https
in your url.