Aryan
Aryan
  • 发布:2015-04-29 12:01
  • 更新:2015-04-30 11:16
  • 阅读:1900

ajax请求方式

分类:MUI

mui中ajax方法现在暂时不提供put和delete方法,请问大概什么时候能推出?或者我可以自己扩展出来么?是否服务器方面需要额外配置。因为我用的rest风格的webservice,现在不支持put和delete的话我只能全都启用post方式。

2015-04-29 12:01 负责人:无 分享
已邀请:
DCloud_UNI_FXY

DCloud_UNI_FXY

只是没有封装出直接使用的。你可以用下列代码实现。

mui.ajax({type:'put|delete'});
Aryan

Aryan (作者)

这个方法如果参数为put或者delete会出现请求错误的异常,用flidder进行put的话就没问题。

DCloud_UNI_FXY

DCloud_UNI_FXY

贴一下你的代码

Aryan

Aryan (作者)

                mui.ajax('http://192.168.0.115/Rest/3', {  
                    dataType: 'json', //服务器返回json格式数据  
                    type: 'Put', //HTTP请求类型  
                    timeout: 10000, //超时时间设置为10秒;  
                    success: function(data) {  
                        //服务器返回响应,根据响应结果,分析是否获取成功;  
                        console.log(data.Id);  
                        var name = document.getElementById("remark_name");  
                        var telephoneNo = document.getElementById("remark_telephone");  
                        var address = document.getElementById("remark_address");  
                        name.innerText = data.name;  
                        telephoneNo.innerText=data.telephone;  
                        address.innerText=data.address;  
                    },  
                    error: function(xhr, type, errorThrown) {  
                        //异常处理;  
                        console.log(errorThrown);  
                    }  
                });
DCloud_UNI_FXY

DCloud_UNI_FXY

错误信息打印的是什么?

Aryan

Aryan (作者)

请求错误

DCloud_UNI_FXY

DCloud_UNI_FXY

在error里边打印xhr。JSON.stringify(xhr);看具体错误。
我这里测试了put,delete。没问题

在ajax之前设置一下,然后测试  
mui.ajaxSettings.xhr=function(protocol) {  
            return new window.XMLHttpRequest();  
        },
Aryan

Aryan (作者)

加上你发的这段代码就可以了,但是我查看了mui.js的源码,mui.ajaxSettings.xhr本身的设置就是你发的这段代码,为什么还需要再次设置一次呢?能否解惑下?谢谢了。

  • DCloud_UNI_FXY

    在plusReady里,我们默认会替换为plus的xhr。

    能否打印一下error里的xhr。我看看是什么错误导致的plus的xhr无法正常工作

    2015-04-29 17:10

Aryan

Aryan (作者)

这是在chrome里面的报错信息:
OPTIONS http://192.168.0.115/Rest/3 405 (Method Not Allowed)a.ajax @ mui.min.js:6(anonymous function) @ subpage-webview-repair-content.html:155
subpage-webview-repair-content.html:1 XMLHttpRequest cannot load http://192.168.0.115/Rest/3. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8020' is therefore not allowed access. The response had HTTP status code 405.

  • DCloud_UNI_FXY

    在chrome里没用的。chrome里边跨域了。

    我的意思是在手机上。

    把代码调整成。

    error: function(xhr, type, errorThrown) {

    //异常处理;

    console.log(JSON.stringify(xhr));

    }

    2015-04-29 18:47

Aryan

Aryan (作者)

xhr不是一个json格式的object,转不了字符串,xhr[0]转过来是空字符串

  • DCloud_UNI_FXY

    奇怪了。我都能JSON.stringify(xhr)打印的。

    你把你的url统一成小写再试试

    2015-04-30 14:26

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