0
私はユーザーが任意のXMLを貼り付けることができるテキスト領域を持っています。次に、ボタンをクリックすると、XMLがサーバーに送信され、応答が取得されます。私は、これは小さなXMLでも完璧に動作することがわかりました。しかし、私の問題は、大規模なXMLを送信すると、Railsサーバのログには単に非常に大きなXMLデータをAngular 2のParamsとしてRailsに渡す
と書いてあります!!無効 要求
CODE
Provider.ts
import { Injectable } from '@angular/core';
import { Http, Headers, Response } from '@angular/http';
import { HttpClientService } from './../services/httpclient.service';
@Injectable()
export class QuestWebServiceTestProvider {
constructor(private http: HttpClientService) {}
getResponseXML(params) {
return this.http.get('/api/v1/get_response_xml?request_xml=' + params["request_xml"]);
}
}
Component.ts(これは、プロバイダへのテキストエリアから読み出したXMLを渡す)
getResponse() {
let requestXml = this.requestXmlElement.nativeElement.value.trim();
if(requestXml.length > 0) {
let requestXmlJson = encodeURI(requestXml);
this.<provider>.getResponseXML({request_xml: requestXmlJson).subscribe(
data => {
console.log(data);
}
)
}
}
大きなXMLを送信する最も良い方法は何ですか?
query_stringが切り詰められる可能性がある点(ブラウザ、フロントWebサーバー、Railsアプリケーションサーバー)があり、「無効なリクエスト」が発生することがあります。したがって、大きなフィールドを送信するには、HTTPの 'POST'メソッドを使用する必要があります。 'return this.http.post(...)'のようなもの –