Reputation: 33
I am making an http request from ionic app(Angular4) and receiving a response in form of a Js object, but on receiving i am getting some error.
This is the object which i am receiving from API
{"up_votes":"1","down_votes":"0"}
using http.get to receive data in app, home.ts
..
public vote_response:any={};
...
this.http.get(this.baseURI+'votesNum.php?'+this.question.question_id)
.subscribe(result =>{this.vote_response = result.json();});
this is the error which i am receiving:
ERROR SyntaxError: Unexpected token < in JSON at position 0
at JSON.parse (<anonymous>)
at Response.Body.json (http.es5.js:800)
at MapSubscriber.project (forum-quest-details.ts:44)
at MapSubscriber._next (map.js:77)
at MapSubscriber.Subscriber.next (Subscriber.js:89)
at XMLHttpRequest.onLoad (http.es5.js:1229)
at t.invokeTask (polyfills.js:3)
at Object.onInvokeTask (core.es5.js:4119)
at t.invokeTask (polyfills.js:3)
at r.runTask (polyfills.js:3)
Can anyone help me solve this issue.
Upvotes: 0
Views: 582
Reputation: 7141
this.vote_response = result.json();
Replace this one with console.log(result)
and take the data and check with some online JSON validation site (https://jsonlint.com) to see if the data is valid JSON. You might be getting HTML body instead of JSON.
To response as JSON:
header('Content-Type: application/json');
echo json_encode(array('up_votes'=>$up_votes, 'down_votes'=> $down_votes ));
Upvotes: 1