时时商务社区
标题:
getJSON跨域SyntaxError问题分析
[打印本页]
作者:
bewin83
时间:
2018-2-14 05:55
昨天写一个功能:点击手机验证的同时获取json端的数据。
javascript代码如下:
$(".check_mobile").click(function(){
var mobile = $('.mobile').val();
$.getJSON("http://www.test.com/user.php?mobile="+mobile+"&format=json&jsoncallback=?", function(data){
if (data.succ == 1) {
var html = "
";
$(".r_m").append(html);
}
});
});
user.php代码如下:
'石家庄',
'cityid' =>'1',
'community' =>'紫晶悦城',
'communityid'=>'1'
);
$sucess = 1;
$return = array(
'succ' =>$sucess,
'data' => $user
);
}else {
$sucess = 2;
$return = array(
'succ' =>$sucess
);
}
echo json_encode($return);
}
?>
相应如下:
问题出来了:
在火狐浏览器中: SyntaxError: missing ; before statement
解决方法如下:
header("Access-Control-Allow-Origin:http:www.test.com");
$b = json_encode($return);
echo "{$_GET['jsoncallback']}({$b})";
exit;
最后完整代码:
'石家庄',
'cityid' =>'1',
'community' =>'紫晶悦城',
'communityid'=>'1'
);
$sucess = 1;
$return = array(
'succ' =>$sucess,
'data' => $user
);
}else {
$sucess = 2;
$return = array(
'succ' =>$sucess
);
}
$b = json_encode($return);
echo "{$_GET['jsoncallback']}({$b})";
exit;
}
?>
如果在 PHP 中少了 header("Access-Control-Allow-Origin:http:www.test.com"); 代码,则会出现
XMLHttpRequest cannot load ''. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin ' ' is therefore not allowed access.
如果少了 echo "{$_GET['jsoncallback']}({$b})"; 代码
在谷歌浏览器中:Uncaught SyntaxError: Unexpected token :
在火狐浏览器中:SyntaxError: missing ; before statement
您可能感兴趣的文章:
JS不能跨域借助jquery获取IP地址的方法
js跨域问题浅析及解决方法优缺点对比
使用jsonp完美解决跨域问题
5种处理js跨域问题方法汇总
AngularJS iframe跨域打开内容时报错误的解决办法
js跨域请求的5中解决方式
Jsonp post 跨域方案
javascript跨域方法、原理以及出现问题解决方法(详解)
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
简单谈谈json跨域
AJAX实现跨域的三种方法(代理,JSONP,XHR2)
JS跨域交互(jQuery+php)之jsonp使用心得
欢迎光临 时时商务社区 (http://bbs.4435.cn/)
Powered by Discuz! X3.2