AJAX不同步
【腾讯云】亏本大甩卖,服务器4核16G 1年370元(带宽12M,系统盘120GB SSD盘,月流量2000GB)!!!!!!
云产品 配置 价格
服务器 1核2G,带宽5M,系统盘50GB SSD盘,月流量500GB 38元/年
MySQL 1核1G 19元/年
服务器 16核32G,带宽18M,系统盘250GB SSD盘,月流量5000GB 1197元/年
点我进入腾讯云,查看更多详情

I've got an issue similar to this question here: Javascript and AJAX, only works when using alert()

I have an AJAX call to update a field in the database when finalizing a form. However, the call doesn't seem to be reaching the controller. When I put an alert in, it works. I've currently got it set to synchronous because of the issue, but even then, without the alert, it only reaches the controller about 1 in every 5 or six times. This is the AJAX bit:

function finalize() {
    if (!confirm("Are you sure?"))
        return;

    $("#finalizebutton").attr('disabled', 'disabled');

    var request = new XMLHttpRequest();
    var url = "/Operation/Finalize/";
    request.open("GET", url, false);
    request.send();

    $("#otherformstuff").attr('disabled', 'disabled'); //a few disable calls
}

On the control side I have approximately:

public ActionResult Finalize()
{
    db.setfinalized(true);   //breakpoint here that only gets hit about 1 in 5 tests
    return Content("Finalized");
}

Even when there is an alert shoved in there it sometimes doesn't work. Oddly enough, I put an alert for request.responseText and it gave me the response from the control without the control ever actually processing it... Any thoughts on this are appreciated.

#0

Because you tell it to be synchronous.

Your problem is with this line:

request.open("GET", url, false);

The open method takes 3 arguments. Method, url, and the third is a boolean that tells it whether or not the request should be asynchronous.

Just change the false to true, and the request will be async.

request.open("GET", url, true);

But you could also just replace that entire block of XHR code with this one line..

$.get('/Operation/Finalize/');

推荐文章

.htaccess重写$\u GET变量

.htaccess重写$\u GET变量

推荐文章

如何在NSBezierpath中收集所有要绘制的点

如何在NSBezierpath中收集所有要绘制的点

推荐文章

Extjs文件上传请求保留在waitMsg上

Extjs文件上传请求保留在waitMsg上

推荐文章

以编程方式编辑System.Servicemodel值?

以编程方式编辑System.Servicemodel值?

推荐文章

如何使用重载运算符[]将值赋给左侧?

如何使用重载运算符[]将值赋给左侧?

推荐文章

谁负责加载数据?

谁负责加载数据?

推荐文章

如何在支柱1.2中使用标记?

如何在支柱1.2中使用标记?

推荐文章

为什么需要魔术评论

为什么需要魔术评论

推荐文章

J滑块上的按钮背景色

J滑块上的按钮背景色

推荐文章

如何使用MultiByteToWideChar?

如何使用MultiByteToWideChar?

推荐文章

如何在一个屏幕上加载和删除一些线性布局-Android?

如何在一个屏幕上加载和删除一些线性布局-Android?

推荐文章

对于使用Java对象来实现其许多功能的cfc,什么是单元测试的最佳方法?

对于使用Java对象来实现其许多功能的cfc,什么是单元测试的最佳方法?

推荐文章

php中的SQL数组值

php中的SQL数组值

推荐文章

一个好的C++原生多媒体库?

一个好的C++原生多媒体库?

推荐文章

SQL Server另一个简单的问题

SQL Server另一个简单的问题

推荐文章

Django用户名编辑问题

Django用户名编辑问题