Angular 2 post data is null in asp.net MVC
<p>I use Angular 2 and ASP.Net MVC. When sending data(the getData method) to the server receive null. For the test, I tried to send a post request using jquery ajax, everything went well.
Please tell me what is the problem?</p>

<h1>properties.service.ts</h1>

<pre class="lang-js prettyprint-override"><code>import { Injectable }     from '@angular/core';
import { Http, Response } from '@angular/http';
import { Headers, RequestOptions } from '@angular/http';

import '../../../shared/rxjs-operators';
import { PropertyNode } from './property.model';

@Injectable()
export class PropertiesService {
    private headers = new Headers({ 'Content-Type': 'application/json' });
    private dataUrl = 'Editor/returnProperties';

    constructor(private http: Http) { }

    getData(FullName: string): Promise&lt;PropertyNode[]&gt; {
        let body = JSON.stringify({ FullName: FullName});
        let options = new RequestOptions({
            headers: this.headers
        });

        return this.http.post(this.dataUrl, body, this.headers)
            .toPromise()
            .then(this.extractData)
            .catch(this.handleError);
    }

    private extractData(res: Response): PropertyNode[] {
        let data = res.json();
        let properties: PropertyNode[] = [];
        console.log(data)
        return data;
    }

    private handleError(error: any) {
        console.error('An error occurred', error);
        return Promise.reject(error.message || error);
    }
}
</code></pre>

<h1>EditorController.cs</h1>

<pre class="lang-cs prettyprint-override"><code>[HttpPost]
public JsonResult returnProperties(string FullName)
{
    try
    {
        PAVBaseDataItem node = IDE.MvcApplication.fDataProvider.RootItem.ChildItem(FullName);
        List&lt;PAVBasePropertyItem&gt; properties = node.PropertiesList();
        return Json(properties);
    }
    catch (Exception ex)
    {
    return Json("");
    }
} 
</code></pre>

<p><a href="https://i.stack.imgur.com/jEEQL.png" rel="nofollow">Screenshot c# debug</a>,
<a href="https://i.stack.imgur.com/zNaxN.png" rel="nofollow">Screenshot chrome-devtools</a>.</p>

<h2>Update</h2>

<p>Changed the <strong>properties.service.ts</strong> and it worked. All changes in the method getData:
</p>

<pre><code>getData(FullName: string): Promise&lt;PropertyNode[]&gt; {
        let body = JSON.stringify({ FullName });
        let headers = new Headers({ 'Content-Type': 'application/json' });
        let options = new RequestOptions({ headers: headers });

        return this.http.post(this.dataUrl, body, options)
            .toPromise()
            .then(this.extractData)
            .catch(this.handleError);
    }
</code></pre>