首页 新闻 会员 周边

如何设置ajax.post() 方法同步提交?

0
[已解决问题] 解决于 2014-09-04 10:52

如何设置ajax.post() 方法同步提交?我这么写错在哪里了?求大神指教。

function Check(year,areaId,subjectId)
{
    $.ajaxSetup({
        async: false
    });
    $.post("/Search/SearchAdd", { year: year, areaId: areaId, subjectId: subjectId }, function (data) {
        return data.Result;//data.Result bool型
    }, "Json");
}
问题补充:

需求大概是这样的,同一年份、地区、专业的信息只能有一条,所以往数据库里添加数据的时候就需要进行验证,我目前的做法是选择完年份、地区和专业后进行异步请求去验证一下,根据返回值进行判断,如果已存在,则弹出一个confirm框提示去修改,如果不存在则让他直接添加,点击添加的时候同样需要验证唯一性。

晓菜鸟的主页 晓菜鸟 | 老鸟四级 | 园豆:2594
提问于:2014-09-02 14:45
< >
分享
最佳答案
0

自己在本地测试了很久,我感觉应该是这样的,$.ajaxSetup函数所设置的默认值不会应用到load()命令上。对于实用工具函数,如$.get()和$.post(),其HTTP方法不会因为使用这些默认值而被覆盖。当然,对于$.ajax()方法是有效的,不然这个函数就没有存在的必要了,但是一般不推荐这么使用。谢谢大家的回答了。

晓菜鸟 | 老鸟四级 |园豆:2594 | 2014-09-02 16:36
其他回答(2)
0

想要同步,还是用$.ajax或者表单提交吧。
post默认就是异步的

乐享程序员 | 园豆:930 (小虾三级) | 2014-09-02 14:47

嗯,前两天查资料的时候看到的,说可以通过这个 $.ajaxSetup({ async: false }); 设置post请求为同步。所以来此问一问。

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-09-02 14:56

@晓菜鸟: 

那个是设置ajax的全局值,你这样设置后,同一个页面下,如果再要使用$.post、$.ajax、$.get、$.getJSON时,就会默认是同步请求。所以在页面上有多个异步请求时,最好还是不用这种方式。

支持(0) 反对(0) 乐享程序员 | 园豆:930 (小虾三级) | 2014-09-02 15:00

@螺 丝 钉: 同一个页面下,如果再要使用$.post、$.ajax、$.get、$.getJSON时,就会默认是同步请求。

如果结果真是你说的那样的话,我当前这个post请求应该是同步的,但是测试发现他还是异步的。

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-09-02 15:04

@晓菜鸟: 

你在页面初始化时就使用。

$(function(){

$.ajaxSetup();

});

支持(0) 反对(0) 乐享程序员 | 园豆:930 (小虾三级) | 2014-09-02 15:09

@螺 丝 钉: 额,页面初始化时设置$.ajaxSetup({ async: false });也不管用,照样还是异步请求。

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-09-02 15:15

@晓菜鸟: 

参考文档中说是可以的,没有测试过,真的不行就算了。

支持(0) 反对(0) 乐享程序员 | 园豆:930 (小虾三级) | 2014-09-02 15:19

@螺 丝 钉: 

难道这个设置是这设置$.ajax的默认选项?

支持(0) 反对(0) 乐享程序员 | 园豆:930 (小虾三级) | 2014-09-02 15:20

@晓菜鸟: 

你测试一下,$.ajaxSetup是不是只对$.ajax有效

支持(0) 反对(0) 乐享程序员 | 园豆:930 (小虾三级) | 2014-09-02 15:22

@螺 丝 钉: 跑了两遍,ajax方法有效。

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-09-02 16:25
0

$.ajax可以同步传值的

三国郭海 | 园豆:280 (菜鸟二级) | 2014-09-02 16:42

谢谢回答,目前基本实现了。

支持(0) 反对(0) 晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-09-03 11:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册