2013-10-08 78 views
0

所以我想这个AJAX调用异步运行,但它仅与异步的工作原理:假AJAX调用不工作时异步:真

var url = 'Default.aspx/CheckLogin'; 
    $.ajax({ 
     async: true, // works with async: false 
     type: "POST", 
     contentType: "application/json; charset=utf-8", 
     url: url, 
     data: '{"email":"' + email.val().trim() + '", "password":"' + password.val().trim() + '"}', 
     dataType: "json", 
     success: function (data) { 
      alert("success!"); 
     }, 
     error: function (result,something,error) { 
      alert("Error: " + error); 
     } 
    }); 

编辑:

当异步是真实的警报将显示立即与“错误:”,这是没有错误消息。 CheckLogin函数非常慢,所以当它实际运行时,它需要一段时间。

任何想法我做错了什么?

编辑2:

这是一些信息,我从镀铬了://网内部/#事件:

t=1381258516496 [st= 0] +REQUEST_ALIVE [dt=12] 
    t=1381258516497 [st= 1] +URL_REQUEST_START_JOB [dt=11] 
         --> load_flags = 142737665 (ENABLE_LOAD_TIMING | MAYBE_USER_GESTURE | REPORT_RAW_HEADERS | VALIDATE_CACHE | VERIFY_EV_CERT) 
         --> method = "POST" 
         --> priority = 2 
         --> upload_id = "0" 
         --> url = "http://localhost:1176/web_new/Default.aspx/CheckLogin" 
    t=1381258516497 [st= 1]  HTTP_CACHE_GET_BACKEND [dt=0] 
    t=1381258516497 [st= 1]  +HTTP_STREAM_REQUEST [dt=11] 
    t=1381258516508 [st=12]  CANCELLED 
    t=1381258516508 [st=12]  -HTTP_STREAM_REQUEST 
    t=1381258516508 [st=12] -URL_REQUEST_START_JOB 
         --> net_error = -3 (ERR_ABORTED) 
    t=1381258516508 [st=12] -REQUEST_ALIVE 
+0

当你尝试'assync:false'时会发生什么?控制台中的一些错误将会有所帮助。 –

+0

什么不适用于async:false? –

+1

是什么让你觉得它不是异步?只要删除该属性? – tymeJV

回答

0

异步真正是适合于Ajax的默认。有时您需要将其设置为false,例如,您可能会在回调内部调用另一个Ajax调用,在这种情况下,您需要将外部ajax调用设置为异步false,并将回调中的调用设置为true。 此外,由于您打电话给后面的代码,请确保正确格式化数据,并且隐藏webmethod的方法是静态的。除此之外,你的阿贾克斯看起来不错。