2***@qq.com
2***@qq.com
  • 发布:2016-11-01 17:24
  • 更新:2016-11-05 10:47
  • 阅读:4005

$.ajax post同步请求设置不生效(真机调试、app)

分类:MUI

<script src="../../js/mui.min.js"></script>
<script src="../../js/jquip.all.min.js"></script>
mui.plusReady(function () {
var data={'sys':info[0]};

            $.ajax({  
                type:"POST",  
                url:ykt.config.api+'api/list.php?cmd=list3_title&',  
                data:data,  
                async: false,  
                success:function(e){  

                    if(e!=''){  
                        var post_data_obj=JSON.parse(e);  
                        $.each(post_data_obj, function(n,value) {  
                            $(".mui-table-view").eq(0).append(  
                                '<li class="mui-table-view-cell" guid="'+value.guid+'">'  
                                    +'<a class="mui-navigate-right">'  
                                        +'<span class="span-input-title">'+value.name+'</span>'  
                                        +'<span class="span-clear"></span>'  
                                        +'<span class="span-input-list">'+value.list_text+'</span>'  
                                    +'</a>'  
                                +'</li>'  
                            );  
                        });  
                    }  
                    //点击跳转  
                    mui('.mui-table-view-cell').each(function(index,element){  

                        this.addEventListener('tap', function(event) {  

                            var s_name='s_'+data_input.name;  
                            var s_data=data_input;  
                            s_data.guid=$(this).attr("guid");  
                            s_data.class_name=$(this).find(".span-input-title").text();  
                            mui.openWindow({  
                                    url: "input-list3-show.html",  
                                    id: s_name,  
                                    show: {  
                                        autoShow:true,  
                                        aniShow: 'slide-in-right',  
                                        duration: 200  
                                    },  
                                    extras:s_data  
                                });  
                        },false);  
                    });  

                },  
                error: function(r,state){  
                    console.log(r.responseXML);  
                    console.log(state);  
                }  
            });  

});

尝试过mui.ajax的同步设置也失败了。

mui.ajax({
url: ykt.config.api+'api/list.php?cmd=list3_title&'
data: data,
async: false,
crossDomain: true, //强制使用5+跨域
type: 'post',

success: function(data) {  
    // 请求成功  
},  
error: function(xhr, type, errorThrown) {  
    // 请求失败  
}  

});

全局设置
$.ajaxSetup({
async: false
});
报错:
Uncaught TypeError: Object function e(e, n) {
return new t(e, n)
} has no method 'ajaxSetup'

请问如何设置ajax为同步请求?(jsonp请给出php接收处理,不会弄jsonp老是请求失败)

2016-11-01 17:24 负责人:无 分享
已邀请:
2***@qq.com

2***@qq.com - 部落冲突 buluo.cc

代码 建议 截图的形式,这个 编辑器貌似不能格式 代码

Trust

Trust - 少说废话

  • 2***@qq.com (作者)

    首先先谢谢了,参考中确实有提到5+xhr不支持跨域。不过我需要的是同步请求解决方案,现在是使用的是异步(最前面的将执行操作放在了成功请求后),但是加载时会先出现空白后才是请求内容。另外容我先吐槽下这个编辑器。好了谢谢。

    2016-11-05 09:52

2***@qq.com

2***@qq.com (作者)

需求同步请求解决方案。现在的只能异步执行:
cors跨域传值:
var data={'sys':info[0],'value':data_input.value};
//value值处理

                $.ajax({  
                    //cors跨域传值  
                    type:'POST',  
                    async:false,  
                    url:ykt.config.api+'api/list.php?cmd=list_value&cors=1&',  
                    contentType:'application/x-www-form-urlencoded;charset=utf-8',  
                    headers:{'Access-Control-Allow-Origin':'*'},  
                    data:data,  
                    success:function(e){  
                        alert(1);  
                        },  
                    error: function(r,textStatus,errorThrown){  
                        console.log(r.status);  
                        console.log(r.readyState);  
                        console.log(r.responseText);  
                        console.log(textStatus);  
                        console.log(errorThrown);  

                    }  
                });  
                            }  

            alert(2);  

jsonp跨域传值:
//列表数据加载
$.ajax({

                //jsonp跨域传值  
                type:'GET',  
                async:false,  
                dataType:'jsonp',  
                jsonp: 'callback',//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)  
                jsonpCallback:'callBackFun',//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名  
                url:ykt.config.api+'api/list.php?cmd=list3_title&sys='+info[0]+'&',  

                success:function(e){  
                  alert(1);  
                },  
                error: function(r,textStatus,errorThrown){  
                    console.log(r.status);  
                    console.log(r.readyState);  
                    console.log(r.responseText);  
                    console.log(textStatus);  
                    console.log(errorThrown);  

                }  
            });  

alert(2);

'&amp;'是'&'。

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