SyntaxError:意外标记<;在JSON中的位置0-向PHP发出角度Post请求

SyntaxError:意外标记<;在JSON中的位置0-向PHP发出角度Post请求,php,json,angular,typescript,http-post,Php,Json,Angular,Typescript,Http Post,我使用的是angular 2,我试图通过post请求将数据从angular发送到服务器上的php文件。当我尝试时,会出现以下错误“SyntaxError:Unexpected token

我使用的是angular 2,我试图通过post请求将数据从angular发送到服务器上的php文件。当我尝试时,会出现以下错误“SyntaxError:Unexpected token<在JSON中的位置0”。这是我到目前为止的代码。任何协助都将不胜感激。谢谢

应用程序组件按钮

<button class="btn btn-primary btn-lg" (click)="postData()"> Make Post Request </button>
请求服务代码——这是我在应用程序组件中调用的服务

postSomeData(){
   let url = 'link to php file here';
   let jsonData = {
       name: 'my Name'
   };
   let headers = new Headers();
    headers.append('Content-Type', 'application/x-www-form-urlencoded');

    return this.http.post(url, jsonData, {headers: headers})
          .map(res => res.json());
 }
PHP文件

<?php

 $postdata = file_get_contents("php://input");
 $request = json_decode($postdata);
 $name = $request->name;
 echo "Name: ".$name;

 ?>


问题来自于PHP(我假设服务器端)中没有返回响应的事实。

问题来自于PHP(我假设服务器端)中没有返回响应的事实。

不确定从何处得到此错误,但在其正上方,放置
console.log()
,然后回显你要解码的任何数据。您可能得到的是XML而不是JSON,您需要做的是查看随请求发送的任何数据。打开开发者工具,转到网络选项卡并触发ajax启动。您可以查看请求头和请求体。我只是猜测,但我假设您正在发送一些额外的数据,如html以及ajax请求。如果看起来不错,请查看响应信息。可能您在返回时遇到了一些php错误,请使用html完成。@JonathanKuhn Ok。我发送了请求并检查了network选项卡,它显示status 200,我将表单数据视为json对象。有什么具体的我应该找的吗?你从哪里得到这个错误的?在客户端(例如控制台)上还是从php上?好了,就这样。确保发送的数据是有效的json。否则json_解码就不适合你了。您可以使用类似于
var\u dump($postdata)
的方法在php中转储发送过来的原始信息。这看起来像有效的json吗?如果不是,则客户端不发送json数据。您还可以
var\u dump($request)
查看该变量中包含的内容。这显然不是一个对象,这就是为什么你会犯这样的错误。json_decode将返回true、false和null(如果通过发送这些值),或者返回一个对象(如果json有效)。不确定从何处获取此错误,但在其上方放置
console.log()
,并回显您试图解码的任何数据。您可能得到的是XML而不是JSON,您需要做的是查看随请求发送的任何数据。打开开发者工具,转到网络选项卡并触发ajax启动。您可以查看请求头和请求体。我只是猜测,但我假设您正在发送一些额外的数据,如html以及ajax请求。如果看起来不错,请查看响应信息。可能您在返回时遇到了一些php错误,请使用html完成。@JonathanKuhn Ok。我发送了请求并检查了network选项卡,它显示status 200,我将表单数据视为json对象。有什么具体的我应该找的吗?你从哪里得到这个错误的?在客户端(例如控制台)上还是从php上?好了,就这样。确保发送的数据是有效的json。否则json_解码就不适合你了。您可以使用类似于
var\u dump($postdata)
的方法在php中转储发送过来的原始信息。这看起来像有效的json吗?如果不是,则客户端不发送json数据。您还可以
var\u dump($request)
查看该变量中包含的内容。这显然不是一个对象,这就是为什么你会犯这样的错误。如果发送这些值,json_decode将返回true、false和null;如果发送的是有效的json,则返回一个对象。
<?php

 $postdata = file_get_contents("php://input");
 $request = json_decode($postdata);
 $name = $request->name;
 echo "Name: ".$name;

 ?>