window.open没有'我不在http postangular工作
window.open doesn't work in http post angular
这是我的代码:
$rootScope.http({
url: myUrl,
method: "POST",
data: "",
}).success(function (data) {
alert(data.uri); //for test, and I see correct uri shows up here.
window.open(data.uri, ''); return false; //window doesn't open.
});
window.open在.success
中不起作用,但它在http-post方法之外起作用。回调函数出现问题。我在$.ajax
中遇到了同样的问题并修复了它。但同样的解决方案在这里对angular不起作用。
我们之前也遇到过类似的问题,原因很简单;在大多数现代浏览器中,浏览器不允许window.open()
调用,这不是用户活动的直接结果。
在这里,您的window.open()
是在一个异步调用中触发的,该调用不是由用户操作调用的,例如:单击链接或按钮。
您可以通过禁用弹出窗口拦截器来解决这个问题,但我们必须通知用户他们的弹出窗口拦截器已启用。为此,你可以这样做:
$rootScope.http({
url: myUrl,
method: "POST",
data: "",
}).success(function (data) {
$rootScope.popupWindow = window.open(data.uri, '');
$timeout(function() {
// Check if popup blocker is enabled by verifying the height of the new poup
if (!$rootScope.popupWindow || $rootScope.popupWindow.outerHeight === 0) {
alert("Please disable the popup blocker");
}
}, 1000);
});
(注意:我已经测试过这是一个浏览器,不确定在移动设备中,但它应该可以工作)
相关文章:
- Meteor如何接收HTTP请求
- 在我的情况下,如何进行http请求
- //而不是在src=“”上使用http://"属性
- 我无法使用angularJs($http)访问服务器
- AJAX简单错误.XMLHttpRequest无法加载http://localhost/mpl/getPage.php.
- 如何将PHP get查询转换为Meteor's HTTP.get()
- 角度异步http自动完成
- 什么's本地node.js服务器和python简单http服务器之间的区别
- 角度http服务器页面刷新404s
- http.listen()在运行时接受终端命令
- IIS动态HTTP响应标头
- spring和angularJS(我得到了类似HTTP状态404的错误)
- 存储$http如何从$http函数(Angularjs)外部获取可访问变量中的响应
- Typescript angularjs$http获取响应类型(避免使用<any>)
- 如何从HTTP上下文对象中获取Post数据
- 使用插件收听Firefox标签的http请求
- "访问控制允许起源”;通过javascript从http页面调用同一网站的httpsurl时出现问题
- Meteor HTTP调用出现问题
- 如何使用(this)访问Angular 2 http rxjs catch函数中的对象属性
- window.open没有'我不在http postangular工作