昨天写一个功能:点击手机验证的同时获取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代码如下:
<?phpif($_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;最后完整代码:
<?phpheader("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