将 jsonp 与 ajax HTML 一起使用
using jsonp with ajax HTML
我有一个简单的html页面,直接打开,file://abc.html
它有以下代码
$.ajax({
url: "http://localhost:8080/ajax_info.php",
dataType: "jsonp",
jsonp: 'jsoncallback',
success: function(data) {
alert(data);
}
});
ajax_info.php 中只有 echo 'hello'。
每次重新加载时,chrome 中的 Network 选项卡显示向
发出请求
http://localhost:8080/ajax_info.php?jsoncallback=jQuery1111016803214247142373_1471278920224&_=1471278920236
你好,收到回复,但我没有收到警告框。
当我执行该页面时,它什么也没显示(没有警告框),我应该会收到警告并在其中打招呼,我是不是做错了什么?
尝试将此功能添加到您的功能中:
function jsoncallback(json){
alert(json);
}
编辑:当你想使用 JSONP 时,服务器应该在你想要的函数中回显参数:
在服务器上执行此操作
echo 'jsoncallback("hello!")';
或者这个:
echo 'jsoncallback('. json_encode($some_data) .')';
当然'jsoncallback'是用户函数的名称,任何用户都可能想更改,所以你必须按正确的方式进行:
echo $user_sent_me_this_name . '(' . json_encode($some_data) . ')';
success: function(data) {alert(data);}
此代码没问题,请确保您的 Ajax 连接正常。
要知道您可以使用 error:
参数。
$.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>');
}
});
我有一个简单的html页面,直接打开,file://abc.html
它有以下代码
$.ajax({
url: "http://localhost:8080/ajax_info.php",
dataType: "jsonp",
jsonp: 'jsoncallback',
success: function(data) {
alert(data);
}
});
ajax_info.php 中只有 echo 'hello'。
每次重新加载时,chrome 中的 Network 选项卡显示向
发出请求http://localhost:8080/ajax_info.php?jsoncallback=jQuery1111016803214247142373_1471278920224&_=1471278920236
你好,收到回复,但我没有收到警告框。
当我执行该页面时,它什么也没显示(没有警告框),我应该会收到警告并在其中打招呼,我是不是做错了什么?
尝试将此功能添加到您的功能中:
function jsoncallback(json){
alert(json);
}
编辑:当你想使用 JSONP 时,服务器应该在你想要的函数中回显参数:
在服务器上执行此操作
echo 'jsoncallback("hello!")';
或者这个:
echo 'jsoncallback('. json_encode($some_data) .')';
当然'jsoncallback'是用户函数的名称,任何用户都可能想更改,所以你必须按正确的方式进行:
echo $user_sent_me_this_name . '(' . json_encode($some_data) . ')';
success: function(data) {alert(data);}
此代码没问题,请确保您的 Ajax 连接正常。
要知道您可以使用 error:
参数。
$.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>');
}
});