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 相关文章推荐
PHP4(windows版本)中的COM函数
Oct 09 PHP
用PHP和ACCESS写聊天室(七)
Oct 09 PHP
PHP编码规范-php coding standard
Mar 16 PHP
PHP中IP地址与整型数字互相转换详解
Aug 20 PHP
php采集自中央气象台范围覆盖全国的天气预报代码实例
Jan 04 PHP
php上传图片客户端和服务器端实现方法
Mar 30 PHP
微信access_token的获取开发示例
Apr 16 PHP
php实现用于计算执行时间的类实例
Apr 18 PHP
46 个非常有用的 PHP 代码片段
Feb 16 PHP
PHP中OpenSSL加密问题整理
Dec 14 PHP
PHP PDOStatement::bindColumn讲解
Jan 30 PHP
PHP实现cookie跨域session共享的方法分析
Aug 23 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与paypal整合方法
2010/11/28 PHP
PHP实现简单数字分页效果
2015/07/26 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
2016/12/24 PHP
PHP将字符串首字母大小写转换的实例
2017/01/21 PHP
js 调整select 位置的函数
2008/02/21 Javascript
JS嵌套函数调用上下文的问题解决
2014/03/26 Javascript
JavaScript简单修改窗口大小的方法
2015/08/03 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
基于javascript实现句子翻牌网页版小游戏
2016/03/23 Javascript
自己封装的一个原生JS拖动方法(推荐)
2016/11/22 Javascript
JS基于面向对象实现的拖拽功能示例
2016/12/20 Javascript
JavaScript实现新年倒计时效果
2018/11/17 Javascript
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
用Python生成器实现微线程编程的教程
2015/04/13 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
python 将对象设置为可迭代的两种实现方法
2019/01/21 Python
对python dataframe逻辑取值的方法详解
2019/01/30 Python
Django使用list对单个或者多个字段求values值实例
2020/03/31 Python
Python图片处理模块PIL操作方法(pillow)
2020/04/07 Python
Python3爬虫带上cookie的实例代码
2020/07/28 Python
CSS3制作hover下划线动画
2017/03/27 HTML / CSS
英国经典球衣网站:Classic Football Shirts
2017/05/20 全球购物
成品仓管员岗位职责
2013/12/11 职场文书
同事打架检讨书
2014/02/04 职场文书
研究生考核个人自我鉴定
2014/03/27 职场文书
超市优秀员工事迹材料
2014/05/01 职场文书
教师四风对照检查材料思想汇报
2014/09/17 职场文书
企业法人代表证明书
2014/09/27 职场文书
手术室护士个人总结
2015/02/13 职场文书
2015年大学生社会实践评语
2015/03/26 职场文书
2015教师个人工作总结范文
2015/03/31 职场文书
通知范文怎么写
2015/04/16 职场文书
反腐倡廉主题教育活动总结
2015/05/07 职场文书
小学主题班会教案
2015/08/17 职场文书