在:字段中出现错误意外的令牌<在位置0的JSON中

时间:2018-01-16 11:24:20

标签: json angular api symfony

这是postman返回json数组postman的屏幕截图。 我怎么解决?

userservice.ts

@Component({
  selector: 'app-add-user',
  templateUrl: './add-user.component.html',
  styleUrls: ['./add-user.component.css']
})
export class AddUserComponent implements OnInit {

  username: string ;
  email: string;
  errors= [];
  constructor(private _userService: UserService , private router: Router) { }

  addUser(username, email) {

    let user: any;
    user = {username: username, email: email};
    this._userService.addUser(user).subscribe(
      result => this.router.navigate(['/users']),
      err => this.errors.push(err)

    );
  }
 ngOnInit() {
  }
}

在网络devtools我有这个screenshot of network        附加user.ts

 * @param Request $request
     * @param Validate $validate
     * @return JsonResponse
     * @Route("/api/users",name="create_user")
     * @Method({"POST"})
     */
    public function createUser(Request $request,Validate $validate)
    {
        $data=$request->getContent();
        $user=$this->get('jms_serializer')->deserialize($data,'AppBundle\Entity\User','json');
        $reponse=$validate->validateRequest($user);
        if (!empty($reponse)){
            return new JsonResponse($reponse, Response::HTTP_BAD_REQUEST);
        }
        $em=$this->getDoctrine()->getManager();
        $em->persist($user);
        $em->flush();
        $response=array(
            'code'=>0,
            'message'=>'Post created!',
            'errors'=>null,
            'result'=>null
        );
        return new JsonResponse($response,Response::HTTP_CREATED);
    }

UserController中

{{1}}

1 个答案:

答案 0 :(得分:0)

您的代码

return this.http.post(this.uri, JSON.stringify(user), {headers : headers})
.map(res => res.json());

从此

中删除地图功能

你试图将对象和数组都转换为json,这就是问题所在。

 return this.http.post(this.uri, JSON.stringify(user), {headers : headers})
    .map(res => console.log(res));

使用上面的代码检查并粘贴您的控制台值