thinkphp5返回json的问题(ajax远程跨域访问tp5)

浏览:19807 发布日期:2017/07/06 分类:求助交流 关键字: ajax 返回json thinkphp5 tp5 跨域
特别说明:前端ajax与tp5,不同站点。属于跨域访问。
前端代码:function saveUser(){
            $('#fm').form('submit',{
                url: http://localhost/index/index/add,
                onSubmit: function(){
                    return $(this).form('validate');
                },
                success: function(result){
                    var result = eval('('+result+')');
                    if (result.success){
                        $('#dlg').dialog('close');        // close the dialog
                        $('#dg').datagrid('reload');    // reload the user data
                    } else {
                        $.messager.show({
                            title: 'Error',
                            msg: result.msg
                        });
                    }
                }
            });
        }
后端代码:public function add()
    {
        $user= new User($_POST);
        if($User->save()){
            echo json(['success'=>true]);
        } else {
            echo json(['msg'=>'Some errors occured.']);
        }
    }
运行代码,浏览器提示:SyntaxError: expected expression, got ')'
错误指向:var result = eval('('+result+')');查看数据库,确定是已经添加成功了,返回结果到前端时出错。如果不用thinkphp5,直接用原生的php代码写是没有问题的,原生代码如下:<?php

$firstname = $_REQUEST['firstname'];
$lastname = $_REQUEST['lastname'];
$phone = $_REQUEST['phone'];
$email = $_REQUEST['email'];

include 'conn.php';

$sql = "insert into users(firstname,lastname,phone,email) values('$firstname','$lastname','$phone','$email')";
$result = @mysql_query($sql);
if ($result){
    echo json_encode(array('success'=>true));
} else {
    echo json_encode(array('msg'=>'Some errors occured.'));
}
?>
我想知道的是,为什么thinkphp返回json到前端时出错?是BUG吗?还是我漏写了什么代码?tp5版本5.0.9,刚更新了5.0.10也是一样报错。
最佳答案
评论( 相关
后面还有条评论,点击查看>>