ajax请求成功打开新页面被拦截怎么解决

qq_30969557 2017-10-11 01:36:37

if(ptype==1){
fnAjax.appAjax({
url: api_url,
async:false,
data: iPayParam,
success: function (obj) {
if (obj['code'] == 1) {
iPayParam['deal_id'] = obj['payment_index'];
console.log(obj['payment_index']);
//iPayParam['fee'] = obj['payment_fee'];
window.open("/pcmall/Wxpay/example/native.php?payment_index="+obj['payment_index']+"&fee="+obj['payment_fee']);
$('#ceng2').css("display","block");
$('#loadingToast').css("display","none");
} else {
Toast.msg.showByCode(obj['code']);
onSubmit = false;
}
},
error: function (obj) {
onSubmit = true;
Loading.hide();
Toast.msg.error(JSON.stringify(obj));
}
});

}
...全文
802 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2017-10-17
  • 打赏
  • 举报
回复
Pay.getUserInfo 100%异步的,都传递回调了,所以肯定挨拦截了。自己看Pay.getUserInfo能否配置为同步执行的 而且 fnAjax.appAjax({ url: api_url, async:false,你确认你的这个ajax类库支持async同步配置。。

Web开发学习资料推荐
配置chrome支持本地(file协议)ajax请求
Web前端开发
天际的海浪 2017-10-15
  • 打赏
  • 举报
回复
现在的浏览器默认设置是,window.open()方法只能在click事件的程序线程中执行。 也就是必须触发click事件,如果事件中用ajax之类,就必须是同步模式。让代码都在同一个线程中执行。 异步模式会开启一个新的线程,就不能执行window.open()了 你看看Pay.getUserInfo()中的回调函数是不是异步执行的。
lovebaby 2017-10-15
  • 打赏
  • 举报
回复
https://m.baidu.com/from=844b/s?word=open%E4%B8%8D%E8%A2%AB%E6%8B%A6%E6%88%AA&sa=tb&ts=6266978&t_kt=0&ie=utf-8&rsv_t=8d6dZEmTKPsGkalFmsuYlV7p9Dcj48%252BSkOWqLyXYWKlT8mpXjl2OXIYhEQ&rsv_pq=12254292831868491918&rqlang=zh&oq=open%E4%B8%8D%E8%A2%AB%E6%8B%A6%E6%88%AA
Neil_223 2017-10-12
  • 打赏
  • 举报
回复
浏览器设置问题
You冷 2017-10-12
  • 打赏
  • 举报
回复
这和代码没什么关系吧,浏览器的问题
You冷 2017-10-12
  • 打赏
  • 举报
回复
你把浏览器设置一下不就好了
qq_30969557 2017-10-11
  • 打赏
  • 举报
回复
百度说异步改同步也不行 先打开一个空模版 再填网址也不行 整体代码是

$submitBtn.click(function () {
                Pay.getUserInfo(function () {
                    if (iPayCash > 0) {
                        if (AppWeb.inWechat) {
                            Loading.show();
                            makeRechargeOrder();
                        } else {
                            Loading.show();
                            makeRechargeOrder();
                        }
                    }
                });
            });

            //生成请求支付订单
            function makeRechargeOrder() {
                if (onSubmit) {
                    return;
                }
                var pay_voucher = sSwitch && sSwitch.classList.contains('mui-active') ? iPayVoucher : 0;
                var api_url = '';
                iPayParam = {
                    consumer_openid: gOpenId,
                    type: gOrderType,//订单类型
                    pay_type: ptype,//支付类型
                    payment_fee: (iPayCash).mul(0.01),
                    voucher: (pay_voucher).mul(0.01),
                    order_id: gOrderId
                };
                switch (gOrderType) {
                    case '1':
                        //商城订单
                        api_url = '/pcmall/mall.php?c=recharge/recharge_order';
                        break;
                    case '2':
                        //充值订单
                        api_url = '/pcmall/mall.php?c=recharge/pre_recharge_order'; //
                        break;
                    case '3':
                        //套餐订单
                        api_url = '/app/mall.php?c=package/package_recharge_order';
                        break;
                    case '4':
                        //一元购
                        api_url = '/app/mall.php?c=recharge/recharge_orderOneDollarSpike';
                        iPayParam.url = '/app/mall.php?c=recharge/recharge_orderOneDollarSpike';
						iPayParam.activity_type = 1;
						iPayParam.type=1;
						iPayParam.token=gToken;
						iPayParam.device_index=gDeviceIndex;
                        break;
                    default:
                        api_url = '/app/mall.php?c=recharge/recharge_order';
                        break;
                }
                if(ptype==1){
                    fnAjax.appAjax({
                    url: api_url,
                    async:false,
                    data: iPayParam,
                    success: function (obj) {
                        if (obj['code'] == 1) {
                            iPayParam['deal_id'] = obj['payment_index'];
                            console.log(obj['payment_index']);
                            //iPayParam['fee'] = obj['payment_fee'];
                            window.open("http://app.97xgx.com/pcmall/Wxpay/example/native.php?payment_index="+obj['payment_index']+"&fee="+obj['payment_fee']);
                            $('#ceng2').css("display","block");
                            $('#loadingToast').css("display","none");
                        } else {
                            Toast.msg.showByCode(obj['code']);
                            onSubmit = false;
                        }
                    },
                    error: function (obj) {
                        onSubmit = true;
                        Loading.hide();
                        Toast.msg.error(JSON.stringify(obj));
                    }
                });

                }
qq_30969557 2017-10-11
  • 打赏
  • 举报
回复

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧