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实现框架(二)
Oct 09 PHP
PHP 5.0对象模型深度探索之对象复制
Mar 27 PHP
PHP define函数的使用说明
Aug 27 PHP
php URL编码解码函数代码
Mar 10 PHP
基于header的一些常用指令详解
Jun 06 PHP
ThinkPHP使用UTFWry地址库进行IP定位实例
Apr 01 PHP
理解PHP中的stdClass类
Apr 18 PHP
win7计划任务定时执行PHP脚本设置图解
May 09 PHP
PHP中is_dir()函数使用指南
May 08 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
ThinkPHP 5.1 跨域配置方法
Oct 11 PHP
PHP编程一定要改掉的5个不良习惯
Sep 18 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之第六天
2006/10/09 PHP
解析PHP多种序列化与反序列化的方法
2013/06/06 PHP
PHP生成指定随机字符串的简单实现方法
2015/04/01 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
2018/04/27 PHP
jQuery使用手册之三 CSS操作
2007/03/24 Javascript
让你的CSS像Jquery一样做筛选的实现方法
2011/07/10 Javascript
JavaScript 原型继承
2011/12/26 Javascript
jQuery调取jSon数据并展示的方法
2015/01/29 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
JavaScript计算器网页版实现代码分享
2016/07/15 Javascript
Bootstrap table两种分页示例
2016/12/23 Javascript
初探js和简单隐藏效果的实例
2017/11/23 Javascript
解决Angular2 router.navigate刷新页面的问题
2018/08/31 Javascript
简单两步使用node发送qq邮件的方法
2019/03/01 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
JS实现TITLE悬停长久显示效果完整示例
2020/02/11 Javascript
Element Backtop回到顶部的具体使用
2020/07/27 Javascript
使用PyInstaller将Python程序文件转换为可执行程序文件
2016/07/08 Python
Python实现抢购IPhone手机
2018/02/07 Python
详解分布式任务队列Celery使用说明
2018/11/29 Python
Python面向对象之Web静态服务器
2019/09/03 Python
Python 转换RGB颜色值的示例代码
2019/10/13 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
深入CSS3 动画效果的总结详解
2013/05/09 HTML / CSS
CSS3动画特效在活动页中的应用
2020/01/21 HTML / CSS
店长岗位的工作内容
2013/11/12 职场文书
拆迁委托协议书
2014/09/15 职场文书
仓管员岗位职责
2015/02/03 职场文书
2015年办公室主任工作总结
2015/04/09 职场文书
农民工工资支付承诺书
2015/05/04 职场文书
勇敢的心观后感
2015/06/09 职场文书
同步小康驻村工作简报
2015/07/20 职场文书
mysql外连接与内连接查询的不同之处
2021/06/03 MySQL
Java如何实现树的同构?
2021/06/22 Java/Android
Python Pandas 删除列操作
2022/03/16 Python
Python测试框架pytest核心库pluggy详解
2022/08/05 Golang