I have a simple html page that I open directly, file://abc.html
It has the following code
$.ajax({
url: "http://localhost:8080/ajax_info.php",
dataType: "jsonp",
jsonp: 'jsoncallback',
success: function(data) {
alert(data);
}
});
ajax_info.php has echo 'hello' only in it.
On each reload the Network tab in chrome shows that a request is made to
http://localhost:8080/ajax_info.php?jsoncallback=jQuery1111016803214247142373_1471278920224&_=1471278920236
and hello as a response is received but I dont get the alert box.
When I execute the page it shows nothing (no alert box), I am supposed to get alert with hello in it, Am I doing something wrong ?
Try adding this function to yours:
function jsoncallback(json){
alert(json);
}
EDIT: and when you want to use JSONP the server should echo params in the function you want:
do this on server
echo 'jsoncallback("hello!")';
or this:
echo 'jsoncallback('. json_encode($some_data) .')';
Of course 'jsoncallback' is the name of user function, that any user may want to change, so you have to do it right way:
echo $user_sent_me_this_name . '(' . json_encode($some_data) . ')';
success: function(data) {alert(data);}
This code is fine , make sure that your Ajax connection is working. to know that you can use error:
parameter.
$.ajax({
url: "http://localhost:8080/ajax_info.php",
dataType: "jsonp",
jsonp: 'jsoncallback',
success: function(data) {
alert(data);
},
error: function() {
$('#info').html('<p>An error has occurred</p>');
}
});