Я немного изменил вашу функцию и направил ее на тестовую площадку для данных JSON. Этот маленький фрагмент работает. Может быть, это полезно для вас?
Поскольку тестовый сайт возвращает только JSON, "html", который я вставил в #pageContent
, на самом деле не является html, но я надеюсь, что вы все равно поймете.
Если вы хотите знать, что вернул Ajax, вы всегда можете вставить console.log(msg)
в нужном месте (см. Закомментированную строку ниже).
И - просто чтобы было ясно - если загруженный контент предназначен длясгенерированный PHP-скриптом, тогда URL в вашей функции loadPage, конечно, должен указывать на PHP-скрипт на соответствующем сервере. Этот скрипт будет искать данные и обрабатывать их в желаемом формате html перед отправкой обратно в ответ на запрос Ajax.
function loadPage(url){
url=url.replace('#page',''); //strip the #page part of the hash and leave only the page number
jQuery('#IAmloading').show(); //show the rotating gif animation
jQuery.ajax({ //create an ajax request to load_page.php
type: "GET",
url: url, // the URL of the page to be loaded ...
data: {action: 'ajax_request2', id: 4}, //your further parameters ...
dataType: "json", //expect json to be returned
error: function(xhr, textStatus, textError) { console.log(textError);},
success: function(msg){ console.log("Working loadPage ajax!");
// console.log(msg); // show what the AJAX request returned
if(msg) //if no errors
{
jQuery('#pageContent').html(JSON.stringify(msg)); //put msg into pageContent
jQuery('#IAmloading').hide(); //and hide the rotating gif
}
}
});
}
// call the function with the URL of a test site (returns JSON only ...):
loadPage('https://jsonplaceholder.typicode.com/users');
#IAmloading {visibility: hidden}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="IAmloading">Please wait, page is loading ...</div>
<div id="pageContent"></div>