|
昨天写一个功能:点击手机验证的同时获取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使用心得
|
|