java脚本的怪异行为。 我正在尝试开发一个使用QT-QML和JavaScript的简单示例应用程序。
在这我使用HTTP请求,我有使用JavaScript发送HTTP请求的按钮。使用QML的JavaScript的奇怪行为
当我在回调函数中收到HTTP请求的响应时,我试图按如下方式读取HTTP响应的状态。
if(httpReq.readyState == 4) //Problem
{
if(httpReq.status == 200)
{
...
我想检查是否readyState
是4
(4代表完成/完成)
但是,如果条件未能检查并获取评估为真,无论readyState
价值。
例如,如果readyState
是0
(0 == 4),那么如果条件被评估为TRUE则不应该。
为什么会发生这种情况。
我也曾尝试
1. if(parseInt(httpReq.readyState) == 4)
2. if(Number(httpReq.readyState) == 4)
3. if(httpReq.readyState == '4')
以上条件也给予了同样的结果和被评估为TRUE无论readyState
价值。
我的JavaScript解释器有问题吗?
谢谢。
------ ----- UPDATE
的是,我有QML应用程序(发送HTTP请求)和HTTP服务器(服务器这个QML HTPP请求)两者在同一应用程序/处理。当我在两个不同的应用程序/可执行文件中分离HTTP服务器和QML应用程序时,它确实有效,并且当我将这两个应用程序组合在同一个可执行文件中时,就会产生问题当我在一个可执行文件中同时使用HTTP服务器和QML应用程序时QML JavaScript解释器开始表现怪异。在运行Web服务器之前,我在单独的线程中运行QML应用程序。
你试过像'号(httpReq.readyState)=== 4'代码? – kirilloid
不,我会尝试。 – psp1
当我写,'logPrint(“结果是:”+(httpReq.readyState == 4));'它打印与'==='相同。 – psp1