ajax异步 send,CasperJS' sendAJAX异步标志设置为true失败

作者探讨了在CasperJS中使用async属性对Web服务进行异步调用时遇到的问题,发现async=false时数据能正常保存,但异步=true时结果不一致,表现为数据保存成功但AJAX返回null。文章分析了可能的原因并寻求解决方案。
摘要由CSDN通过智能技术生成

我设置了一个CasperJS脚本来调用我的Web服务(在localhost:9000上运行)。

包含需要填充的参数的webservice。假设一个金额参数,我的网络服务从其参数中保存金额数据。所以我写了这样的CasperJS脚本:

casper.then(function(){

val = this.evaluate(function(){

//do step #1 ajax request

var country_amount = 9;

var params = "amount="+country_amount;

var data = "amount="+country_amount;

var wsurl = "http://localhost:9000/TempCountryAmountREST/setCountryAmount?amount="+country_amount;

//window.__utils__.echo("Country Amount :"+country_amount);

return JSON.parse(__utils__.sendAJAX(wsurl, "POST" , null, false, { contentType: "application/json" }));

});

});

如您所见,在__utils__.sendAJAX的第四个参数中,我将其设置为false,这意味着asynchronous = false。好吧,一切顺利,async = false。那个val变量成功返回了json数据。

但是,当我将虚假变为真时,它会出现一个奇怪的事情。有时它成功保存数据(使用我的webservice),但val没有返回正确的值(它是null,但它应该返回json数据)。但是当我在phpmyadmin上看到时,保存数据仍然是成功的。但有时也(几乎总是发生),它无法保存数据量,仍然,返回null(不是json数据)

所以发生了什么,在CasperJS sendAJAX中使用异步请求有问题吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值