有一项要求是在我们的 Angular 应用程序中使用外部服务。外部服务有自己的用户界面。因此,我们必须在给定外部服务的 URL 上使用纯 HTTP Post 请求重定向到外部服务。
有没有办法从 Angular 进行非 AJAX post 调用,以便屏幕重定向到外部服务网页。
最佳答案
解决方案是动态创建一个表单并提交。我在服务类中创建了一个方法,如下所示,以使其工作。然后从组件调用此方法。创建了一个辅助方法 createHiddenElement
因为有更多的参数要发布。希望这对某人有帮助。
postToExternalSite(dataToPost: SomeDataClass): void {
const form = window.document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", "https://someexternalUrl/xyz");
//use _self to redirect in same tab, _blank to open in new tab
form.setAttribute("target", "_blank");
//Add all the data to be posted as Hidden elements
form.appendChild(this.createHiddenElement('firstname', dataToPost.firstName));
form.appendChild(this.createHiddenElement('lastname', dataToPost.lastname));
window.document.body.appendChild(form);
form.submit();
}
private createHiddenElement(name: string, value: string): HTMLInputElement {
const hiddenField = document.createElement('input');
hiddenField.setAttribute('name', name);
hiddenField.setAttribute('value', value);
hiddenField.setAttribute('type', 'hidden');
return hiddenField;
}
关于angular - 来自 Angular 的非 XHR(非 AJAX)发布请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51985353/