$.ajax({ type: "post", async:false, url: "xxx.action", data:{"name":name,"type":1}, success: function(data){ // dosomething } });
ajax 常见2个问题
1 中文传值为乱码:
解决方法:不放试试data:{} 方式,不要直接在URL拼装。
2 ajax 中赋值没有作用,大多数的应用是ajax操作完就没有下文了,但是还是有些应用会和ajax有关,比如:ajax success 后要给一个变量赋值,但是赋值总没有作用,奇怪的是它先执行了ajax之后的代码:
解决方法:ajax加上加上 async:false 属性,这样就可以保持代码同步了,不会先执行ajax之后的代码了,按顺序执行,赋值就可以获取了。如果ajax与其后的代码没有关联,就不需要async了,这样才是真正的ajax。
3 ajax 里面的return与外面的函数有关吗?
在ajax里面有时候会发现执行了return或者return false之后还是会执行ajax之后的代码。ajax的return ,无论是return,还是return "" ,return true,return 123,等最终都只是返回true,false,如果等同于return false,就是停止了ajax的代码,如果ajax后面有代码,还会继续执行ajax之后的代码。所以在ajax 中赋值的时候要在ajax之外添加一个变量,最终返回的是ajax之后的。