【发布时间】:2017-11-10 09:09:41
【问题描述】:
我有一个端点,它希望通过发布请求接收大量数据(10mb +),并以一些 JSON 响应。端点在 ASP.NET 上运行,我无法控制它。
我可以从我的机器上通过 curl 发送一个示例文件,它会得到一个有效的 JSON 响应,例如:
$ cat data.txt | curl -X POST -d "@-" "http://{omitted}/?numtopics=2&topiclength=2&passes=2"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 7611k 100 834 100 7610k 75 691k 0:00:11 0:00:11 --:--:-- 252
{"JSON REPONSE..."}
但是,当我尝试从 Angular 调用它时,我得到了完全不同的结果
fileChange(event) {
var fileReader = new FileReader();
fileReader.readAsBinaryString(event.target.files[0]);
fileReader.onload = data => {
this.http.post('http://{omitted}/?numtopics=2&topiclength=2&passes=2', fileReader.result)
.map(res => res.json())
.catch(x => {
return Observable.throw(x)
})
.subscribe(
data => console.log(data),
error => console.error(error));
}
}
在这里我得到以下 HTML 响应,而不是预期的 JSON 响应:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
</title></head>
<body>
<form method="post" action="./?numtopics=2&topiclength=2&passes=2" id="InputData">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="Qrcz5rvSPx2C1sHcD5F4bac+Uitth2vxAxSPfWdXSaigf52n46StPyoNiNNnVKj9QKodTIPyRCkpLmTDJqDS7XR/DPeNDv96B29H5w6Uxqf6VeCm5FJHNqL98+YGppIz" />
</div>
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="CA0B0334" />
</div>
<div>
</div>
</form>
</body>
</html>
我在 Angular 代码中做错了什么?
【问题讨论】:
标签: angular typescript post