我有一个文本区域,用户可以粘贴任何XML。然后单击按钮,XML将发送到服务器以获取响应。我发现,这适用于较小的XML。但是,我的问题是,当我发送大型XML时,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 (这会将从textarea读取的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的最佳方法是什么?
答案 0 :(得分:0)
抱歉,问题中的拼写错误。我实际上使用POST
请求。
感谢Pavel Mikhailyuk指点。
这就是我修复它的方法:
而不是手动将查询参数框架化为:
...get_response_xml?request_xml=' + params["request_xml"]
我将XML作为选项传递给HTTP POST
:
let options = {request_xml: params["request_xml"] };
return this.http.post('...get_response_xml?, options);
这似乎有用!!!