问题描述:
- 使用ajax二次请求时,报错:Unsupported Media Type;
 - 同一段代码,第一次请求成功且正常,当再次刷新请求时报错;
 - 在IOS端请求正常,不论刷新几次,结果显示正确;在Android端,只有第一次请求正常,再次请求报以上错误
 
核心代码如下:
   mui.ajax(app.getIpaddr() + api,{  
    data:{ },  
    dataType:'json',//服务器返回json格式数据  
    type:'post',//HTTP请求类型  
    timeout:10000,//超时时间设置为10秒  
    crossDomain: true,  
    headers: {"authorization":"Basic "+btoa(app.getState().account+":")+app.getState().password},  
    success:function(data){  
        /* 返回数据逻辑处理 */  
    },  
    error:function(xhr,type,errorThrown){  
        plus.nativeUI.toast("网络故障");  
    }  
  });
已解决:
在header里加上类型"Content-Type":"application/x-www-form-urlencoded",保持前后台数据类型一致
headers: {"Content-Type":"application/x-www-form-urlencoded","authorization":"Basic "+btoa(app.getState().account+":")+app.getState().password},
疑问:
在mui文档里 ajax说明中有一句话:
processData  
Type: Boolean  
为了匹配默认的content-type("application/x-www-form-urlencoded"),  
mui默认会将data参数中传入的非字符串类型的数据转变为key1=value&key2=value2格式的查询串;  
如果业务需要,希望发送其它格式的数据(比如Document对象),可以设置processData为false  
这里说明是ajax中,已经默认类型为application/x-www-form-urlencoded,为何还要单独写出来,
而且为何第一次可以正常请求,再请求就不行了,且只发生在Android端。此为两个疑惑没弄懂。
            
            
            
            
0 个回复