suney
suney
  • 发布:2015-05-21 20:10
  • 更新:2020-03-02 18:41
  • 阅读:2400

plus.net.XMLHttpRequest要求什么样的配置?

分类:5+ SDK

我是把H5+作为插件使用的,只引入了最基本的配置。
在js中调用plus.net.XMLHttpRequest是,android报错了,错误信息如下:
05-21 20:00:59.720: W/System.err(27003): java.lang.NullPointerException
05-21 20:00:59.720: W/System.err(27003): at io.dcloud.net.NetWork.run(NetWork.java:241)
05-21 20:00:59.720: W/System.err(27003): at java.lang.Thread.run(Thread.java:841)

js代码是

            var xhr = new plus.net.XMLHttpRequest();  
            xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');  
            xhr.onreadystatechange = this.onReadStatechange(xhr);  
            if ((typeof authorizationHeader != 'undefined') && (authorizationHeader != '')) {  
                xhr.setRequestHeader(DigestAuthentication.AUTHORIZATION_HEADER, authorizationHeader);  
                $.each(headers, function(index, value) {  
                    xhr.setRequestHeader(value.headerName, value.headerValue);  
                });  
            }  
            xhr.open(DigestAuthentication.HTTP_METHOD, uri);  
            xhr.send(body);  

是否因为有什么东西没有配置?
xhr.jar包已经加入了。

2015-05-21 20:10 负责人:无 分享
已邀请:
suney

suney (作者)

有人帮忙回答一下吗?

suney

suney (作者)

没人帮忙回答,自己基本上折腾清楚了,估计plus.net.XMLHttpRequest实现的不是很完整,这我访问的url是需要digest认证的,我用js实现了认证的流程,使用普通的XMLHttpRequest是正常的,但plus.net.XMLHttpRequest处理会出错。
而且发现用plus.net.XMLHttpRequest时,使用chrome debug会有问题,后面的几个状态断点不生效了。

DCloud_Android_ST

DCloud_Android_ST

DigestAuthentication.HTTP_METHOD 是什么?
void open( method, url, username, password );
method: ( DOMString ) 必选 请求URL的HTTP协议方法
值可以为"GET"、"POST"。
目前支持持GET 和 POST 如果你填写的是其他模式,就会失败

  • suney (作者)

    感谢回答,DigestAuthentication.HTTP_METHOD是另外定义的,取值就是GET和POST。

    我的问题在于犯了一个低级错误

    xhr.onreadystatechange = this.onReadStatechange(xhr);

    应该把后面的(xhr)去掉。

    但那个NullPointerException的异常误导了我。好像NullPointerException的异常对结果没有影响。

    2015-05-26 08:39

whsczl

whsczl

var xhr = new plus.net.XMLHttpRequest();

xhr.open('GET',plus.io.convertLocalFileSystemURL('resource/assets/fishes11.png', true);  

xhr.addEventListener("load", function (e) {   
   alert('加载成功');  
});  

xhr.addEventListener('error', function(e) {
alert(e)
});
xhr.setRequestHeader("Accept","/");

 xhr.send();      

老是报 406,怎么解决?

加载 本地txt文件是可以的,图片就不行。

该问题目前已经被锁定, 无法添加新回复