记录一个浪费我一天时间的ajax问题

<script  type="text/javascript">
$(function() {
	//登录
	$.ajaxSetup({ async: false });
	$('#loginBtn').click(function() {
		login();
	});
});

function login() {
	$.getJSON('<%=renderResponse.encodeURL(loginUrl.toString())%>',function(data){
		alert(data.result);
	});
}
</script>
function login() {
	$.ajax({
        type: "POST",
        url: "<%=renderResponse.encodeURL(loginUrl.toString())%>",
        dataType: "json",
        async: false,
        success: function(data){
        	alert(data.result);
        },
        error : function(XMLHttpRequest,textStatus, errorThrown){
			alert("网络连接出错!");
 			alert(XMLHttpRequest.status);
 			alert(XMLHttpRequest.readyState);    
            alert(textStatus);
			return false;
		}
      });
}

In the ajax operation just add

async: false,

after

datatype: "json",

and that should solve your problem. Chrome has issue handling asynchronus calls.


--------------------------------------------------------------------

You can also use the following before making your call:

$.ajaxSetup( { "async": false } );

I do not know the scope of the "async" property, I suspect that it is a global config. So consider whether you want to change this back to true after your synchronous call.

example:

3rdPartyObject.getCustomValue = function { 
    $.ajaxSetup( { "async": false } );
    var result = $.getJSON('myUrl');
    $.ajaxSetup( { "async": true } );
    return result;
}
resourceResponse.setContentType("application/json;charset=utf-8");
resourceResponse.getWriter().print("{\"result\":\"ok\"}");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值