使用带有QML和JavaScript的XMLHttpRequest时遇到问题
我从QML按钮单击调用JavaScript函数,在那个JavaScript中我将XMLHttpRequest
发送到服务器。但是当我发送请求时,我立即回调函数(我使用onreadystatechange
属性拒绝了)作为req.readyState == XMLHttpRequest.DONE
,但req.status
为'0'。
通常我们会按以下方式获取readyState
:
XMLHttpRequest.UNSENT = 0;
XMLHttpRequest.OPENED = 1;
XMLHttpRequest.HEADERS_RECEIVED = 2;
XMLHttpRequest.LOADING = 3;
and then
XMLHttpRequest.DONE = 4;
在完成状态下,我们检查请求状态,该状态应为200 什么可能导致这种行为。
这是QT JavaScript Interpreter的问题吗?
我坚持这个
感谢。
答案 0 :(得分:0)
我不能说QT解释器是否有问题,但可能是您的请求有问题。 req.readyState == XMLHttpRequest.DONE
并不意味着请求是成功的;即使出现错误,您也会得到它,请参阅this source.
完成(数值4)
传输过程中数据传输已完成或出现问题(例如 无限重定向)。
[...]
DONE状态有一个相关的错误标志,指示某种类型的网络错误或堕胎。它可以是true或false,初始值为false。
status属性必须返回运行这些步骤的结果:
如果状态为UNSENT或OPENED,则返回0并终止这些步骤。
如果错误标志为true,则返回0并终止这些步骤。
返回HTTP状态代码。
答案 1 :(得分:0)
您是否碰巧在后端使用HTTPS连接和自签名证书?如果是,请尝试使用普通HTTP(或使用有效的SSL证书) - 几天前使用自签名证书遇到类似的问题。