使用带有QML JavaScript的XMLHttpRequest时遇到问题

时间:2011-09-22 14:09:49

标签: javascript qml

使用带有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的问题吗?

我坚持这个

感谢。

2 个答案:

答案 0 :(得分:0)

我不能说QT解释器是否有问题,但可能是您的请求有问题。 req.readyState == XMLHttpRequest.DONE并不意味着请求是成功的;即使出现错误,您也会得到它,请参阅this source.

中的完成
  

完成(数值4)

     

传输过程中数据传输已完成或出现问题(例如   无限重定向)。

     

[...]

     

DONE状态有一个相关的错误标志,指示某种类型的网络错误或堕胎。它可以是true或false,初始值为false。

来自status attribute

  

status属性必须返回运行这些步骤的结果:

     

如果状态为UNSENT或OPENED,则返回0并终止这些步骤。

     

如果错误标志为true,则返回0并终止这些步骤。

     

返回HTTP状态代码。

答案 1 :(得分:0)

您是否碰巧在后端使用HTTPS连接和自签名证书?如果是,请尝试使用普通HTTP(或使用有效的SSL证书) - 几天前使用自签名证书遇到类似的问题。