角度HttpClientを送信するためのポスト要求無効Ionic5 / Angular8は、プロジェクトで使用される問題を解決

Ionic5 / Angular8がHttpClient.post要求無効な角度プロジェクトで使用される問題を解決


直接のソリューション
1、書かれたJavaサーバ・インタフェース

	@Description("获取计划执行监控总体数据列表")
	@POST
	@Path("/getPlanExecMonitorTotalData")
	@Produces(MediaType.APPLICATION_JSON)
	public String getPlanExecMonitorTotalData(
			@FormParam("dsType") @DefaultValue("demoDs") String dsType,
			@FormParam("planDate") String planDate,
			@FormParam("equipGroupId") String equipGroupId,
			@FormParam("equipJson") String equipJson) {
		
	}

JavaサーバPOSTリクエストインターフェイスポイント

キー1:インターフェースメソッドに(MediaType.APPLICATION_JSON)注釈@Producesを追加します。
キー2:注釈メソッドのパラメータ@FormParam。

2、フロントエンドの言い回し

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
import { EnvService } from '../../wongoing/env.service';
import { UtilsService } from '../../wongoing/utils.service';

@Injectable({
  providedIn: 'root'
})
export class JihuaService {

  constructor(private http: HttpClient, private env: EnvService, private utilsService: UtilsService) { }

  /**
   * 获取计划执行监控总体数据列表
   * @param planDate 计划日期
   * @param equipGroupId 生产区域ID
   * @param equipJson 机台列表json串[{equipCode:'', equipName:''}, {equipCode:'', equipName:''}]
   */
  public getPlanExecMonitorTotalData(planDate, equipGroupId, equipJson) {
    const url = this.env.getPlanExecMonitorTotalData;
    const method = 'POST';
    const dsType = this.utilsService.getDataSourceType();
    const usedLanguage = this.utilsService.getUsedLanguage();
    let body = new HttpParams();
    body = body.append('dsType', dsType);
    body = body.append('planDate', planDate);
    body = body.append('equipGroupId', equipGroupId);
    body = body.append('equipJson', equipJson);
    const options = { headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded') };
    // const options = { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } };      // 效果等同上一句
    return this.http.post(url, body.toString(), options).toPromise();
  }
}

鍵1のtoString()メソッドHttpParams目的は、重要なパラメータに本明細書中で使用される本体this.http.post第2のパラメータのフォーマットは、PARAM1 =値1&PARAM2 = value2のこの形式でなければなりません文字列フォーマット。
キー2:3番目のパラメータは、コンテンツタイプがapplication / x-www-URLエンコードされthis.http.post要求ヘッダーを設定します。

図3に示すように、テストインタフェースの郵便配達
ここに画像を挿入説明

注:それはボディの代わりにフォームデータセットパラメータのパラメータの設定要求を、x-www-form-urlencodedでれます。

公開された138元の記事 ウォンの賞賛303 ビュー120 000 +

おすすめ

転載: blog.csdn.net/zlbdmm/article/details/105356769