daydream000 2017-12-21
一般我们使用的ajax请求时,都是异步的在结果运行以后,在方法外是得不到参数的,但是使用同步执行的时候是可以返回data的。
ajaxSettings.async参数进行设置,默强调内容认情况下是true,即异步,同步时在方法前设置: $.ajaxSettings.async = false;此时在方法执行完,能return出相应的data。
代码块
/** * 得到列表 */ function flowAtoms(){ //请求接口 var listUrl = getServerUrl('XXXXXXX'); var param = {}; $.ajaxSettings.async = false; newlist=""; $.post(listUrl,param, function(data){ // 返回的Json转换 var data_json = $.parseJSON(data); if(data_json.status==200){ // 初始化操作选项 var data=data_json.data; var funcHtml=""; $.each(data,function(i,v){ funcHtml+=v.name; }) newlist = funcHtml; } else { alert(data_json.message); } }) //返回全局变量newlist return newlist; }
如果是get则如果有参数会直接跟在地址之后。如果是post请求,向服务器发送POST请求由于解析机制的原因,需要进行特别的处理。因为POST请求和Web表单提交是不同的,需要使用XHR来模仿表单提交。