PHPCMS通过getJSON调用的地址方法必须加public
今天遇到一个getJSON的问题,回调函数一直无法执行,检查了生成的json数据的格式绝对没问题,getJSON的js语法也没问题,但就是alert不出来传回的数据。原来是phpcms的check_hash()函数对远程调用的方法进行了安全验证,方法名前没public_的都不能通过。
(('/^public_/', ROUTE_A) || ROUTE_M =='admin' && ROUTE_C =='index' || (ROUTE_A, ('login' ((['pc_hash']) && ['pc_hash'] != '' && (['pc_hash'] == ['pc_hash' ((['pc_hash']) && ['pc_hash'] != '' && (['pc_hash'] == ['pc_hash' 'hash_check_false'),
phpcms给函数进行了hash验证,因此,现在方法是这样写的:
public_mobile_getjson_ids() {
= (['modelid' = (['id'->db->set_model( = ->db->->db->table_name = .'_data' = ->db->get_one(('id'=>),'mobile_type'(['mobile_type' = ('|', ',', ['mobile_type' = (,',' = "id IN()" = ->mobile_db = pc_base::load_model ( 'mobile_type_model' = ->mobile_db->select(,'id,type_name'
( ['sid'] = 'v'.['id'((CHARSET)=='gbk') ['type_name'] = ('gbk', 'utf-8', ['type_name'[] = json_encode(
js部分的getJSON是这样写的:
"?m=content&c=content&a=public_mobile_getjson_ids&modelid="+modelid+"&id="+id, newrelation_ids = ''(json=='没有添加相关文章' += "<li id='"+n.sid+"'>·<span>"+n.type_name+"</span><a href='javascript:;' class='close' onclick=\"remove_relation('"+n.sid+"',"+n.id+")\"></a></li>"'#mobile_type_text'
就好了。要注意phpcms里面调用远程地址,方法前加上public啊!!
PHP之友评论