我有一个通过angular $http.post将数据发布到ASPNET MVC页面的页面(..)当调用结束时,我必须提交一个表单。
基本上我执行以下操作:
<html ng-app>
<body data-ng-controller="testController">
<form id="Checkpay" name="Checkpay" style="margin: 0" method="post" action="https://www.sandbox.paypal.com/cgi-bin/webscr" target="_blank" class="ng-pristine ng-valid">
<input type="hidden" name="quantita" id="qtytext" value="0">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="item_name" value="Le Spose di Nika">
<input type="hidden" name="business" value="TEST@TEST.it">
<input type="hidden" name="currency_code" value="EUR">
<input type="hidden" name="cancel_return" id="cancel_return" value="">
<input type="hidden" name="return" id="return" value="">
<input type="hidden" name="no_shipping" value="1">
<input type="hidden" id="H_amount" name="amount" value="719.80">
<input type="hidden" id="H_first_name" name="first_name">
<input type="hidden" id="H_address1" name="address1">
<input type="hidden" id="H_city" name="city">
<input type="hidden" id="H_state" name="state">
<input type="hidden" id="H_zip" name="zip">
<input type="hidden" id="H_email" name="email">
<input type="hidden" id="Country" name="country">
<input type="hidden" id="charset" name="charset" value="utf8">
<input type="hidden" id="rm" name="rm" value="2">
<input type="hidden" id="notify_url" name="notify_url" value="">
<input id="Submit1" type="submit" value="submit_post" />
</form>
<input id="Submit2" type="button" data-ng-click='pay()' value="js_post" />
</body>
</html>
<script src="http://localhost:27433/Scripts/jquery-1.7.1.min.js"></script>
<script src="http://localhost:27433/Scripts/jquery-ui-1.8.20.min.js"></script>
<script src="http://localhost:27433/Scripts/angular.js"></script>
<script>
function test() {
}
function testController($scope, $http) {
var URL = "http://backend.MYSITE.com/";
$scope.payTest = function () {
var PAYPAL_URL_RELEASE = "https://www.paypal.com/cgi-bin/webscr";
var PAYPAL_URL_SANDBOX = "https://www.sandbox.paypal.com/cgi-bin/webscr";
$('#cancel_return').val(URL + '/ErrorPay');
$('#return').val(URL + '/Success');
$('#notify_url').val(URL + '/PayPalReceiverIPN.ashx?idOrder=');
document.forms["Checkpay"].action = PAYPAL_URL_RELEASE;
document.forms["Checkpay"].submit();
console.log('paytest is executed!');
}
$scope.pay = function () {
////$.post( URL + "/Order/Create", JSON.stringify({ newOrder: 1 }))
//// .success(function (datdata, status, headers, configa) {
//// console.log(' $.post success');
//// $scope.payTest();
//// }).error(function (data, status, headers, config) {
//// console.log(' $.post failure');
//// });
$http.post(
URL + "/Order/Create", JSON.stringify({ newOrder: 1 })
).success(function (datdata, status, headers, configa) {
console.log('http success');
$scope.payTest();
}).error(function (data, status, headers, config) {
console.log('http failure');
});
}
}
</script>
当我这样做document.forms["CheckPay"]。提交();我方面有一个重定向到页面,这是我的表单的属性操作,而不是我得到一个弹出的页面,我将重定向。
我已经尝试将函数payTest()排除在“成功”之外,它可以工作,然后我认为问题是对象$http(或ajax)如何处理“成功”委托。
问题是:当$http.post(....)毕正在打电话?
谢谢
好的,问题的答案和解释就在这里在新窗口中打开页面,没有弹出窗口阻止
问题:当我执行form.submit()时,我会得到一个弹出窗口,而不是浏览器上的一个新选项卡
原因:我已经执行了submiut到ajax调用的成功委托,这意味着用户没有启动esplichtilly提交,因此浏览器响应弹出窗口,如果BLOCK是ON,则阻止弹出窗口
解决方案:我们可以通过两种方式解决这种情况1)设置目标="_self",但我们会得到提交到父页面的响应2)在ajax调用上使用同步标志。请注意,角$超文本传输协议似乎通过硬编码标志使用异步请求
thnak寻找所有答案
您的payTest函数是否完全执行?
我会这样做:
function testController($scope, $http) {
$scope.pay = function () {
$http({
method: 'POST',
url: 'http://backend.mysite.com/Order/Create',
data: JSON.stringify({ $scope.newOrder: 1 })
})
['success'](function (data, status, headers, config) {
console.log('http success');
$scope.payTest();
})
['error'](function (data, status, headers, config) {
console.log('http failure');
});
};
$scope.payTest = function() {
console.log('paytest is executed!');
// all your stuff
};
}
更新:我把$http调用的语法改成了我一直使用的语法。
问题内容: 我通过window.open打开了一个弹出窗口。使用JavaScript打开,我想在关闭此弹出窗口时刷新父页面。(onclose事件?)我该怎么办? 问题答案: 您可以使用“ window.opener”访问父窗口,因此,在子窗口中编写如下内容:
问题内容: 我在JPopupMenu中有一个JComboBox(以及其他组件)。事实证明,每当我打开组合框的弹出窗口(以选择一个项目)时,父级JPopupMenu都会关闭。我一直在尝试找到一种方法来覆盖此功能,但无济于事。 有没有人建议防止关闭父级JPopupMenu?谢谢! 问题答案: 这不可能直接实现,很难覆盖已知的错误,另一方面,Swing不允许同时使用两个lightwieght弹出组件 但
问题内容: 我想基于窗口重新调整大小事件(在加载和动态运行)执行一些任务。 目前,我的DOM如下: 该事件正确触发 如何从此事件对象中检索宽度和高度? 谢谢。 问题答案:
问题内容: 我正在尝试使用javafx在webview中打开网页。单击超链接后,此网页将打开一个新的弹出窗口。 我如何打开新的弹出窗口,当尝试在默认Web浏览器(例如chrome,IE)中打开同一网页时,它们正在打开弹出窗口。 为了创建弹出窗口,我使用以下代码。 问题答案: 您需要自己创建WebView弹出窗口,并从回调中提供WebEngine。如果需要新窗口,请使用该WebView创建一个新的舞
我想在单击“注册”按钮时打开一个弹出对话框。我想在弹出对话框中添加文本字段,密码字段等元素。如果您可以建议我如何将组件添加到弹出窗口,然后将弹出窗口添加到窗格并显示它,那就更好了。谢谢!。
问题内容: 下面是我修改的代码。 我想做的是在新窗口中打开结果。我目前正在使用类似的方法在新窗口中打开页面: 问题答案: 加 要么 到表单的定义。