下载过里的文件Jsonp那个不能用,一直跳发生错误:200,弹框
下载过里的文件Jsonp那个不能用,一直跳发生错误:200,弹框
下载过里的文件Jsonp那个不能用,一直跳发生错误:200,弹框
2016-04-14
已经找出错误,并修正。
看看是否是下面2个问题:
1.URL地址错误:
url: "http://127.0.0.1:8080/ajaxdemo/serverjsonp.php?
jqueryjsonp.html文件中,ajax文件中的URL地址是否对应,如果不对应,会出现错误:
//调试面板console错误信息: Failed to load resource: net::ERR_CONNECTION_REFUSED //调试面板Network里具体页面的header信息--request header里显示错误: Provisional headers are shown
这种情况,是url地址错误导致。
解决方法:
查看url地址是否正确。
上面的url端口号为8000,我本地的端口号是80,因此需要改端口号为本地的端口号。(视频中使用软件做服务器时因为端口冲突,改过端口后,因此本地测试时需要进行调整。)
路径是否正确。根目录下的ajaxdemo文件夹下,这里我的本地目录是在ajax文件夹下,因此也需要进行相应修改。
修改过后的正确的url地址为:
url: "http://127.0.0.1:80/ajax/serverjsonp.php?
2. 服务器文件serverjsonp文件错误。
将文件里修改过的jsonp内容还原为json内容时,改动错误,会导致alert错误(提示“发生错误:200”)。
这时,调试面板Network里具体页面的header选项卡页面里,明明显示status为200,应该已经成功了,为啥还会弹出200错误呢?而且Response选项卡页面里,也是有成功信息的,为啥还会错误呢?
原因:serverjsonp文件错误
解决方法:
修改serverjsonp文件:
//通过员工编号搜索员工
function search(){
$jsonp = $_GET["callback"];
//检查是否有员工编号的参数
//isset检测变量是否设置;empty判断值为否为空
//超全局变量 $_GET 和 $_POST 用于收集表单数据
if (!isset($_GET["number"]) || empty($_GET["number"])) {
echo $jsonp . '({"success":false,"msg":"参数错误"})';
return;
}
//函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
//global 关键词用于访问函数内的全局变量
global $staff;
//获取number参数
$number = $_GET["number"];
$result = $jsonp . '({"success":false,"msg":"没有找到员工。"})';
//遍历$staff多维数组,查找key值为number的员工是否存在,如果存在,则修改返回结果
foreach ($staff as $value) {
if ($value["number"] == $number) {
$result = $jsonp . '({"success":true,"msg":"找到员工:员工编号:' . $value["number"] .
',员工姓名:' . $value["name"] .
',员工性别:' . $value["sex"] .
',员工职位:' . $value["job"] . '"})';
break;
}
}
echo $result;
}将上述代码改为:
//通过员工编号搜索员工
function search(){
//检查是否有员工编号的参数
//isset检测变量是否设置;empty判断值为否为空
//超全局变量 $_GET 和 $_POST 用于收集表单数据
if (!isset($_GET["number"]) || empty($_GET["number"])) {
echo '{"success":false,"msg":"参数错误"}';
return;
}
//函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
//global 关键词用于访问函数内的全局变量
global $staff;
//获取number参数
$number = $_GET["number"];
$result = '{"success":false,"msg":"没有找到员工。"}';
//遍历$staff多维数组,查找key值为number的员工是否存在,如果存在,则修改返回结果
foreach ($staff as $value) {
if ($value["number"] == $number) {
$result = '{"success":true,"msg":"找到员工:员工编号:' . $value["number"] .
',员工姓名:' . $value["name"] .
',员工性别:' . $value["sex"] .
',员工职位:' . $value["job"] . '"}';
break;
}
}
echo $result;
}注意改动位置:
//删除:
$jsonp = $_GET["callback"];
$result = $jsonp . '({"success":false,"msg":"没有找到员工。"})'; //改为:
$result = '{"success":false,"msg":"没有找到员工。"}';
//这里删除$jsonp.,同事也要删除''中的()号。吧主的问题就是这个()号引起的,将其删除,应该就可以正常运行了。
举报