У меня есть следующий код jQuery ajax, который вызывает веб-сервис ASP.NET для сохранения данных в базе данных.Ошибка веб-службы в jquery при использовании Internet Explorer 10
function SaveDataToParty() {
var mode = "Save";
var srno = 0;
var partyname = $("#p1").val();
var partyemail = $("#p2").val();
var partyphone = $("#p3").val();
var partyaddress = $("#p4").val();
var webMethod = "../Service/DatabaseHandling.asmx/SaveDataToParty";
var parameters = "{mode:'" + mode + "',srno:'" + srno + "',partyname:'" + partyname + "',partyemail:'" + partyemail + "',partyphone:'" + partyphone + "',partyaddress:'" + partyaddress + "'}";
alert(parameters);
$.ajax({
type: "POST",
url: webMethod,
async:false,
data: JSON.stringify(parameters),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert(msg.d);
},
error: function (e) {
alert(e.statusText);
}
});
}
Этот вызов следующий метод WebService в asp.net
<WebMethod()> _
Public Function SaveDataToParty(mode As String, srno As String, partyname As String, partyemail As String, partyphone As String, partyaddress As String) As Boolean
'this will start connection and set transaction to it
Dim cnstr As String = String.Empty
cnstr = System.Configuration.ConfigurationManager.ConnectionStrings("DPMTConnectionString").ConnectionString
Dim cn As New SqlConnection(cnstr)
Dim tran As SqlTransaction
cn.Open()
tran = cn.BeginTransaction
Try
'this will handle sp coding
Dim dcmd As New SqlCommand
dcmd.Connection = cn
dcmd.CommandType = CommandType.StoredProcedure
'sp execution for party entry
If mode = "Save" Then
dcmd.Parameters.Add("@mode", SqlDbType.NVarChar).Value = "ADD"
dcmd.Parameters.Add("@srno", SqlDbType.Int).Value = 0
End If
If mode = "Update" Then
dcmd.Parameters.Add("@mode", SqlDbType.NVarChar).Value = "UPDATE"
dcmd.Parameters.Add("@srno", SqlDbType.Int).Value = srno
End If
dcmd.Parameters.Add("@partyname", SqlDbType.NVarChar).Value = partyname
dcmd.Parameters.Add("@partyemail", SqlDbType.NVarChar).Value = partyemail
dcmd.Parameters.Add("@partyphone", SqlDbType.NVarChar).Value = partyphone
dcmd.Parameters.Add("@partyaddress", SqlDbType.NVarChar, 500).Value = partyaddress
dcmd.CommandText = "sp_add_update_delete_party"
dcmd.Transaction = tran
dcmd.ExecuteNonQuery()
tran.Commit()
Return True
Catch ex As Exception
Return False
Finally
cn.Close()
End Try
End Function
генерируется ошибка только в Internet Explorer 10. Ошибка «Недопустимый вызов веб-службы, отсутствующее значение для параметра: \ u0027mode \ u0027»
Он отлично работает в Google Chrome.
Любое решение?
EDIT 1
Я обновил это с JSON.stringify и асинхронным: ложным, но до сих пор никакого успеха с IE10.
EDIT 2
В инструментах разработчика IE10, в закладке сети, отображается следующая информация.
Key Value
Request POST /hemal/ASPNET/DPMT/Service/DatabaseHandling.asmx/SaveDataToParty HTTP/1.1
Accept application/json, text/javascript, */*; q=0.01
Content-Type application/json; charset=utf-8
X-Requested-With XMLHttpRequest
Referer http://localhost/hemal/ASPNET/DPMT/ADMIN/Purchase_Add.aspx
Accept-Language en-IN,en-GB;q=0.8,en;q=0.5,gu;q=0.3
Accept-Encoding gzip, deflate
User-Agent Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)
Host localhost
Content-Length 0
DNT 1
Connection Keep-Alive
Cache-Control no-cache
Cookie ASP.NET_SessionId=mhp35fbfn3vzoalqvdild5hb; loginstatus=ok
Я шокирован, почему длина контента равна 0. Это означает, что ничего не отправлено.
вы можете получить сообщение Данные из IE. используя скрипач или что-то. Если вы разместите эти данные здесь. Мы получим лучший обзор. – Athul
@AthulKSurendran, я обновил свой код с помощью EDIT 2. Пожалуйста, см. – Hemal
. Я не думаю, что вы используете строку правильно? Вы должны подстроить объект. См. Мой ответ. – Brett