gpt4 book ai didi

getJSON跨域SyntaxError问题分析

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章getJSON跨域SyntaxError问题分析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

昨天写一个功能:点击手机验证的同时获取json端的数据.

javascript代码如下:

?
1
2
3
4
5
6
7
8
9
$( ".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代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?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 。

解决方法如下:

?
1
2
3
4
header( "Access-Control-Allow-Origin:http:www.test.com" );
$b = json_encode( $return );
echo "{$_GET['jsoncallback']}({$b})" ;
exit ;

最后完整代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?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 。

最后此篇关于getJSON跨域SyntaxError问题分析的文章就讲到这里了,如果你想了解更多关于getJSON跨域SyntaxError问题分析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com