Внутренняя ошибка 500 при использовании углового объекта - PullRequest
0 голосов
/ 03 мая 2019

Я учусь использовать Subject из rxjs для отправки строки на сервер.Я утешаю строку из внешнего интерфейса, и она печатает ожидаемую строку.Когда я смотрю в net core2.1, он отправляется как null, а не как строка.

Это ошибка в окне googlechrome dev "2: 65418 / api / stock: 1 POST http://localhost:65418/api/stock 500 (Internal Server Error)"

Вот код компонента вФайл stock.component.ts:

    post(stock){
     this.api.postStock(stock);
     console.log("this is the stock I posted", stock);
}

Это код API службы API:

import { Injectable } from '@angular/core'
import { HttpClient, HttpHeaders } from '@angular/common/http'
import { Subject} from 'rxjs'

import { Cagr } from '../_models/cagr'
import { environment } from '../environments/environment'

const headers = new HttpHeaders({'Content-Type':'application/json; charset=utf-8'});
@Injectable({
  providedIn: 'root'
})

export class ApiService {

  apiURL = environment.apiUrl;
  stockUrl = this.apiURL + '/api/stock';

  private icarg = new Subject<Cagr[]>();
  Icagr$ = this.icarg.asObservable();

  constructor(private http: HttpClient) { }

  postStock (stocks) {
    this.http.post(this.stockUrl, stocks, {headers: 
headers}).subscribe(res => {

  console.log("POST call successful value returned in body", res);
},
response => {
  console.log("POST call in error", response);

  })
  } 

Это HTML-код компонента:

<mat-card>
    <mat-card-content>
        <form class="example-form">
        <mat-form-field >
          <input [(ngModel)]="stock" name = "stock" matInput placeholder="Input stock symbol" >
        </mat-form-field>
      </form>
    </mat-card-content>
    <mat-card-actions>
        <button (click)="post(stock)" mat-raised-button color="primary">Go</button>
        <div>

Этоэто внутренняя область, в которой я ожидаю увидеть строку, но она равна нулю:

[HttpPost]
    public async Task<IActionResult> Post([FromBody]Models.Stock stock)
    {
        _context.Stocks.Add(stock);
        await _context.SaveChangesAsync();
        return Ok(stock);
    }

1 Ответ

1 голос
/ 04 мая 2019

Прежде всего, вы проверили свой API с помощью любого инструмента, как почтальон / скрипач / чванство. Потому что, насколько я знаю, внутренняя ошибка сервера исходит из вашего API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...