2017-04-20 9 views
1

支払いゲートウェイからのフォームを提出する必要があります。私たちのバックエンドの男は、innerHtmlを入れてレンダリングした後に送ってください。私はクロームで作業するようにしましたが、ファイアフォックスでは失敗しました。今私はテスト環境で修正しようとしていますが、バックエンドは私が自分のフォームを作成できるように私が送っていたフォームを複製するために必要なすべてのプロパティのJSON戻りを追加しました。しかし、まだファイアフォックスに提出していません。angular2タイプコピーでフォームを送信

誰かが同じ経験をしていますか?光を私に流してください。

私が知る必要があるFirefox固有の修正はありますか?以下は

クロムとサファリ

import { Component, OnInit, AfterViewInit, ViewChild, ElementRef,DoCheck, ViewChildren, QueryList } from '@angular/core'; 
import { BrowserModule, DomSanitizer, SafeResourceUrl, SafeUrl} from '@angular/platform-browser'; 
import { PaymentService } from '../../_services/payment.service'; 
import { Loader } from '../../_services/loader.service'; 

@Component({ 
    selector: 'bdf-payment-form', 
    templateUrl: './payment-form.component.html', 
    styleUrls: ['./payment-form.component.scss'] 
}) 
export class PaymentFormComponent implements OnInit,DoCheck, AfterViewInit { 

    form : SafeResourceUrl; 
    // @ViewChild('paymentFormContainer') container: ElementRef; 
    @ViewChild('paymentForm') myForm: ElementRef; 
    loader; 
    constructor(private paymentService:PaymentService, 
    private sanitizer: DomSanitizer, 
    private loaderService: Loader, 
    private elRef:ElementRef) { } 

    ngDoCheck(){ 

    } 
    ngOnInit() { 
    console.log(this.paymentService.paymentForm); 
    this.paymentService.paymentForm ? this.form = this.sanitizer.bypassSecurityTrustHtml(this.paymentService.paymentForm) : null 
    this.loader = true; 
    } 

    ngAfterViewInit() { 
    let test; 
    if(this.form){ 
     test = this.elRef.nativeElement.querySelector('form') 
     console.log(test) 
     test.submit(); 
    } 

    } 

} 

答えて

0

上の作業コードは、ページの更新とリダイレクトを避けるためにsubmit()メソッドを使用してはならないです。

httpサービスは、フォームからjsonにシリアル化されたフォームデータを送信するために使用されます。モデルにバインドされたフォーム要素があれば、モデルをバックエンドに送り返す方が簡単です。

+0

私はこれを行うことができます。バックエンドの人は、ブラウザはURLを通過する必要があるので、私たちはHTML形式でそれを送信する必要があると言った。ブラウザがフィールドと値を含むurlを訪問すると、 OTP(ワンタイムパスワード)ページに入り、コールバックがトリガーされ、確認ページにリダイレクトされます。 これを行うには良い方法がありますか? 返信用の@Romanに感謝します。 – Don