Asked : Nov 17
Viewed : 55 times
I want to return clean JSON from a PHP header script after page load.
Do I have to set the Content-Type
header or just echo result?
Nov 17
Its quite easy to return clean JSON from a PHP header script after page load.
You just need to add header script to your page or URL 'Content-Type: application/json'
.
DEMO:
header('Content-Type: application/json');
$colors = array("VOLVO","BMW","BENZ");
echo json_encode($colors);
answered Dec 02
Header JSON and the returned response
Example#
By adding a header with content type as JSON:
<?php
$result = array('menu1' => 'home', 'menu2' => 'code php', 'menu3' => 'about');
//return the json response :
header('Content-Type: application/json'); // <-- header declaration
echo json_encode($result, true); // <--- encode
exit();
The header is there so your app can detect what data was returned and how it should handle it.
Note that: the content header is just information about the type of returned data.
If you are using UTF-8, you can use :
header("Content-Type: application/json;charset=utf-8");
Example jQuery :
$.ajax({
url:'url_your_page_php_that_return_json'
}).done(function(data){
console.table('json ',data);
console.log('Menu1 : ', data.menu1);
});
answered Dec 30
While you're usually fine without it, you can and should set the Content-Type
header:
<?php
$data = /** whatever you're serializing **/;
header('Content-Type: application/json');
echo json_encode($data);
If I'm not using a particular framework, I usually allow some request params to modify the output behavior. It can be useful, generally for quick troubleshooting, to not send a header, or sometimes print_r
the data payload to eyeball it (though in most cases, it shouldn't be necessary).
answered Dec 30
Try this out.
function loadlink(){
$('#links').load('test.php',function () {
$(this).unwrap();
});
}
loadlink(); // This will run on page load
setInterval(function(){
loadlink() // this will run after every 5 seconds
}, 5000);
Hope this helps.
answered Dec 30