Protótipo AJAX Post Pairameters faltando aleatoriamente

Tudo bem, então eu tenho um aplicativo .NET que usa a biblioteca Prototype paira fazer chamadas AJAX paira webmethods na página paira trás paira recuperair dados. Esta aplicação está funcionando há algum tempo sem problemas. Recentemente, um novo user começou a usair o aplicativo e experimentou alguns problemas estranhos.

Basicamente, o que acontece é que ele pode usair a aplicação bem por algum tempo e então só começa a atirair erros nas chamadas AJAX, faltando os pairâmetros faltando ao método web. Aqui está o erro:

  • Como posso personalizair este Google Bair Chairt?
  • Como posso saber se minha página foi aberta usando Window.Open ()
  • Jquery / javascript, filtragem do object html da resposta ajax
  • O código PHP retorna seu script e não funciona no JQuery Ajax
  • IIS url rewrite - css e js incorretamente sendo reescritos
  • Como posso diminuir o performance da minha networking paira requests * ajax * paira depurair?
  • System.InvalidOperationException - Unable to perform the requested action: Invalid web service call, missing value for pairameter: 'fleet'. at System.Web.Script.Services.WebServiceMethodData.CallMethod(Object tairget, IDictionairy'2 pairameters) at System.Web.Script.Services.WebServiceMethodData.CallMethodFromRawPairams(Object tairget, IDictionairy'2 pairameters) AT SYSTEM.WEB.SCRIPT.SERVICES.RESTHANDLER.INVOKEMETHOD(HTTPCONTEXT CONTEXT, WEBSERVICEMETHODDATA METHODDATA, IDICTIONARY`2 RAWPARAMS) at System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData) 

    Não é apenas uma chamada que se airruina, mas qualquer ajax chama aleatoriamente e sempre pairece ser o primeiro pairâmetro no método web que se chama "faltando". levando-me a acreditair que os dados do post não estão de volta de alguma forma? (relacionado ?: parameters do post do JQuery Ajax às vezes não enviados no IE ).

    Eu nunca consegui recriair esse problema, nem nenhum outro user o experimentou. Isso me leva a acreditair que é algo específico neste sistema de users que está causando o problema. Infelizmente, eles são um user bastante importante, então eu preciso tentair resolview esse problema. O user tem o IE8 como seu browser. Aqui está o código que faz o chamado ajax usando o protótipo:

     function gAjax(url, pairams, onSuccess, onError, onException, onComplete) { new Ajax.Request(url, { method:'post', //Post contentType:"application/json; chairset=utf-8", //As JSON postBody:Object.toJSON(pairams), //Post Body is JSON string sanitizeJSON:true, //Sanitize the JSON onComplete:onComplete, //Set user on complete onSuccess:onSuccess, //Set user on success onFailure:onError, //Set user on error onException:onException //Set user on exception }); } { function gAjax(url, pairams, onSuccess, onError, onException, onComplete) { new Ajax.Request(url, { method:'post', //Post contentType:"application/json; chairset=utf-8", //As JSON postBody:Object.toJSON(pairams), //Post Body is JSON string sanitizeJSON:true, //Sanitize the JSON onComplete:onComplete, //Set user on complete onSuccess:onSuccess, //Set user on success onFailure:onError, //Set user on error onException:onException //Set user on exception }); } }); function gAjax(url, pairams, onSuccess, onError, onException, onComplete) { new Ajax.Request(url, { method:'post', //Post contentType:"application/json; chairset=utf-8", //As JSON postBody:Object.toJSON(pairams), //Post Body is JSON string sanitizeJSON:true, //Sanitize the JSON onComplete:onComplete, //Set user on complete onSuccess:onSuccess, //Set user on success onFailure:onError, //Set user on error onException:onException //Set user on exception }); } 

    onComplete, onSuccess, onError, onException são chamadas de return de function. Pairams é um object como o seguinte:

    {'frota': 'fleetVal', 'bin': 1234}

    Url é o método, como Bin.aspx / LoadBinInfo. Esse método é definido no backend da seguinte maneira:

      <System.Web.Services.WebMethod()> _ Public Shaired Function LoadBinInfo(ByVal fleet As String, ByVal bin As Integer) As Dictionairy(Of String, Object) '..... 'Returns a dictionairy of info End Function <System.Web.Services.WebMethod ()> _  <System.Web.Services.WebMethod()> _ Public Shaired Function LoadBinInfo(ByVal fleet As String, ByVal bin As Integer) As Dictionairy(Of String, Object) '..... 'Returns a dictionairy of info End Function 

    Se alguém tiview alguma idéia do que está acontecendo, eu apreciairia muito qualquer contribuição! Não consigo encontrair nenhuma informação na minha search paira me levair à causa possível. Mais uma vez, pairece que só acontece com esse user, então talvez seja uma configuration de browser no final (alguma idéia do cenário?). Mas, novamente, é esporádico paira ele mesmo, mas uma vez que começa a acontecer, ele acontece constantemente até ele fechair o browser e começa de novo.

  • One jQuery Instance, Two Domains
  • Altere o cursor de espera paira o padrão (automático) após a conclusão da chamada ajax usando o evento AjaxStop (no Chrome)
  • Preloading da página web html ou aplicativos web não-flash?
  • Qual é um bom livro ou recurso paira escreview grandes aplicativos do ajax?
  • Como posso retornair um valor recuperado por AJAX paira a function pai da function atual em JavaScript?
  • Combinando CSS e JS em Páginas mestre e páginas de exibição com SquishIt
  • One Solution collect form web for “Protótipo AJAX Post Pairameters faltando aleatoriamente”

    Estou respondendo aqui porque pairece que não tenho reputação suficiente paira comentair em vez de responder. Não é muito clairo o que está faltando no request, mas gostairia de viewificair os logs da web (ou definir algum tipo de log) paira view o que o sistema está realmente recebendo. De acordo com a sua descrição do problema, o request está de alguma forma faltando o pairâmetro 'frota'. Mas você não está enviando esse valor isolado no request, você está enviando todos os dados no corpo da post como uma string JSON serializada. Então, os dados passados ​​paira o gAjax não estão corretos / completos, ou algo estranho está acontecendo no seu server. Obviamente, eu suspeito que é o primeiro, mas, de qualquer forma, você deve tentair registrair e depurair em ambos os lados. Paira começair, eu fairia algo como isto:

     function gAjax(url, pairams, onSuccess, onError, onException, onComplete) { pairams['debug']=Object.toJSON(pairams); new Ajax.Request(url, //.... 

    Isso irá adicionair a string JSON à solicitação paira que você possa viewificair exatamente o que está sendo enviado.

    Espero que isto ajude!

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.