getJSON跨域SyntaxError问题分析


Posted in PHP onAugust 07, 2014

昨天写一个功能:点击手机验证的同时获取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 = "<input type='hidden' name='cityid' value='"+data.data.cityid+"'><input type='hidden' name='communityid' value='"+data.data.communityid+"'>";
$(".r_m").append(html);
}
});
});

user.php代码如下:

<?php
if($_GET){
$mobile = $_GET['mobile'];
if ($mobile == 'XXXX') {
$user = array(
'city' =>'石家庄',
'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;

最后完整代码:

<?php
header("Access-Control-Allow-Origin:http:www.test.com");
if($_GET){
$mobile = $_GET['mobile'];
if ($mobile == '18831167979') {
$user = array(
'city' =>'石家庄',
'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

PHP 相关文章推荐
PHP生成静态页面详解
Dec 05 PHP
php下使用iconv需要注意的问题
Nov 20 PHP
PHP操作Memcache实例介绍
Jun 14 PHP
php的sprintf函数的用法 控制浮点数格式
Feb 14 PHP
PHP页面实现定时跳转的方法
Oct 31 PHP
php利用cookies实现购物车的方法
Dec 10 PHP
PHP中预定义的6种接口介绍
May 12 PHP
PHP register_shutdown_function()函数的使用示例
Jun 23 PHP
高质量PHP代码的50个实用技巧必备(下)
Jan 22 PHP
phpmailer简单发送邮件的方法(附phpmailer源码下载)
Jun 13 PHP
PHP房贷计算器实例代码,等额本息,等额本金
Apr 01 PHP
实例介绍PHP删除数组中的重复元素
Mar 03 PHP
PHP+FastCGI+Nginx配置PHP运行环境
Aug 07 #PHP
PHP生成数组再传给js的方法
Aug 07 #PHP
PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)
Aug 06 #PHP
PHP编程中的常见漏洞和代码实例
Aug 06 #PHP
Discuz7.2版的faq.php SQL注入漏洞分析
Aug 06 #PHP
PHP中的reflection反射机制测试例子
Aug 05 #PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
Aug 05 #PHP
You might like
PHP基础之运算符的使用方法
2013/04/28 PHP
解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
2013/06/18 PHP
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
一个原生的用户等级的进度条
2010/07/03 Javascript
flexigrid 参数说明
2010/11/23 Javascript
纯JavaScript实现HTML5 Canvas六种特效滤镜示例
2013/06/28 Javascript
js数组方法扩展实现数组统计函数
2014/04/09 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
JavaScript学习笔记之基础语法
2015/01/22 Javascript
利用JavaScript脚本实现滚屏效果的方法
2015/07/07 Javascript
怎么引入(调用)一个JS文件
2016/05/26 Javascript
JS实现物体带缓冲的间歇运动效果示例
2016/12/22 Javascript
Vue制作Todo List网页
2017/04/26 Javascript
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
vue组件发布到npm简单步骤
2017/11/30 Javascript
JavaScript实现滑动门效果
2020/01/18 Javascript
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
简单上手Python中装饰器的使用
2015/07/12 Python
Python采用Django开发自己的博客系统
2020/09/29 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
2018/10/11 Python
python基础教程之while循环
2019/08/14 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
2019/08/17 Python
Pyorch之numpy与torch之间相互转换方式
2019/12/31 Python
Python应用实现处理excel数据过程解析
2020/06/19 Python
享誉全球的多元化时尚精品购物平台:Farfetch发发奇(支持中文)
2017/08/08 全球购物
测试工程师职业规划书
2014/02/06 职场文书
令人印象深刻的自荐信
2014/05/25 职场文书
副总经理任命书
2014/06/05 职场文书
学生实习证明范文
2014/09/28 职场文书
2015年乡镇平安建设工作总结
2015/05/13 职场文书
建筑工程催款函
2015/06/24 职场文书
爱国主义教育主题班会
2015/08/13 职场文书
学习杨善洲同志先进事迹心得体会
2016/01/23 职场文书
CSS3 实现NES游戏机的示例代码
2021/04/21 HTML / CSS
如何正确理解python装饰器
2021/06/15 Python