使用Webservice时了解jQuery Ajax回调错误问题

时间:2014-05-30 16:29:39

标签: jquery asp.net ajax linq web-services

在我的asp.net Web应用程序中,我使用jquery ajax将值传递给ASMX Web服务,然后使用SQL到LINQ数据类插入一些在Web服务中计算的值。没有/或需要返回到调用ajax。我所做的就是通过webservice将值插入我的sql数据库。

一切都按预期工作 - 值传递给webservice,webservice正确地将值插入到我的sql表中。问题是当我将ajax异步值设置为true时,ajax错误函数最终被调用并返回错误状态值0.尽管如此,在这种情况下,webservice仍然正确地将其值插入到sql表中。

如果我将ajax异步值更改为false,则webservice再次成功完成其工作,在这种情况下,Ajax函数会调用成功的回调函数。因此,尽管从技术上讲,这是通过将值插入到web服务的dbase中,但为什么尝试使用等于true的ajax async会导致ajax调用错误函数?

我显然不了解这个过程的某些方面。所以无论我是否使用异步,最终结果都是一样的。当然,我可以将异步值更改为false但我想这一切都归结为我担心使用async true导致我丢失或引入其他未知问题。是否有我如何使用ajax功能设置或与webservice本身的东西?帮助我了解这里发生的地点或内容。非常感谢你试着把这个点放在我的头上。

以下是关键部分 -

jQuery ajax -

$.ajax({
    type: 'POST',
    contentType: "application/json; charset=utf-8",
    url: 'WebService.asmx/CalledMethod',
    data: "{'myURL':'" + myUrl + "'}",
    datatype: "json",
    async: true,
    success: function(msg)
    {
        if (msg != true) {
           alert(msg);
        }
    },

    error: function(jqXhr, status, error)
    {
        alert(jqXhr.status)

        }); // 
    } 
});

WebService -

[WebService(Namespace = "http://tempurimayo.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService
{
    [WebMethod]
    [System.Web.Script.Services.ScriptMethod(ResponseFormat = System.Web.Script.Services.ResponseFormat.Json)]
    public void CallMethod(string myURL)
    {
        {              

                using (var myLog = new MyDataClassDataContext()
                {

                    var Entry = new myLogTable
                    {
                        Date = DateTime.Now,                            
                        Url = Uri.UnescapeDataString(myURL)

                    };

                    // insert record into log table
                    RecordsToInsert.myLogTables.InsertOnSubmit(Entry);
                    RecordsToInsert.SubmitChanges();                       
                }                       
        }
    }
}

0 个答案:

没有答案