在我的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();
}
}
}
}