我有一个角度的应用程序,需要提交一个表格给供应商。每次运行流程时,供应商都会指定表单必须提交到的url。则应用程序提交到该url。然后,供应商将客户端浏览器重定向到我的应用程序在前面的步骤中指定的页面。
我可以让它在表单操作中使用硬编码的url提交。例如:
<form method="post" ng-submit="preSubmit()"
action="https://posttestserver.com/post.php">
但我需要提交到供应商刚才指定的url。我将这个值存储为$scope.formActionUrl。
因此,我尝试将表单提交给formActionUrl的值:
<form method="post" ng-submit="preSubmit()" action="{{formActionUrl}}">
它不会提交。控制台中未记录任何错误。
如果我在表单上执行inspect-element,它会显示表单操作已经正确地分配给了存储在formActionUrl中的值。
我的preSubmit函数在这两种情况下都会执行。
我需要提交的url是https。
有人知道怎么让它工作吗?
发布于 2014-04-21 16:12:21
我认为这个问题是由于angular如何信任Urls造成的。如果你阅读https://docs.angularjs.org/api/ng/service/$sce,它会更详细地解释这一点。
通过将$sce服务注入到控制器中,您可以执行以下操作:
$scope.formActionUrl = $sce.trustAsResourceUrl("https://posttestserver.com/post.php");
来告诉AngularJS这个url是可信的。然后,它将出现在您的窗体的操作中。
这里有一个快速演示,如果你在呈现的超文本标记语言中查看,操作就在那里,如果你删除$sce,它将不起作用。
http://jsbin.com/diyefevi/10/edit
https://stackoverflow.com/questions/23192422
复制相似问题