Eu tenho uma chamada ajax passando dados para uma página que retorna um valor.
Eu recuperei a chamada bem-sucedida da página, mas a codifiquei para gerar um erro no asp. Como recupero esse erro do jquery?
Por exemplo:
cache: false,
url: "addInterview_Code.asp",
type: "POST",
datatype: "text",
data: strData,
success: function (html) {
alert('successful : ' + html);
$("#result").html("Successful");
},
error: function (error) {
**alert('error; ' + eval(error));**
}
É o bit de erro que eu não entendo. Na função, qual parâmetro eu preciso colocar, para que eu possa usar a mensagem de erro que eu levantei no servidor.
dataType
nãodatatype
..error
e.success
se tornam mais importantes à medida que foram removidos.Respostas:
Os parâmetros necessários em uma
error
função Ajax sãojqXHR, exception
e você pode usá-lo como abaixo:DEMO FIDDLE
Parâmetros
jqXHR:
Na verdade, é um objeto de erro que se parece com isso
Você também pode ver isso no seu próprio console do navegador, usando
console.log
aerror
função como:Estamos usando a
status
propriedade desse objeto para obter o código de erro, como se obtivermos status = 404, isso significa que a página solicitada não pôde ser encontrada. Não existe. Com base nesse código de status, podemos redirecionar os usuários para a página de login ou o que nossa lógica de negócios exigir.exceção:
Esta é uma variável de sequência que mostra o tipo de exceção. Portanto, se estivermos recebendo um erro 404, o
exception
texto seria simplesmente 'erro'. Da mesma forma, podemos obter 'timeout', 'abort' como outros textos de exceção.Portanto, caso você esteja usando o jQuery 1.8 ou superior , precisaremos atualizar a lógica da função de sucesso e erro, como:
Espero que ajude!
fonte
.error
e.success
se tornaram mais importantes à medida que foram removidosTente o seguinte:
Se você deseja informar seu front-end sobre um erro de validação, tente retornar o json:
Seu script asp deve retornar:
fonte
Aqui está como você extrai o erro asp.
fonte
http://api.jquery.com/jQuery.ajax/
fonte
fonte
você está usando uma função
mas o jquery está realmente procurando uma função com três parâmetros:
você precisará adicionar mais dois parâmetros.
TAMBÉM: dê uma olhada em todos os comentários acima que mencionam 'obsoleto' :)
fonte
function myMethod (err) { alert(err); }
e depois chame-o comomyMethod ("something is wrong", 500, some_object)
- Isso funcionará sem nenhum problema. Conforme sua declaração, isso só funcionaria se a assinatura do método fossefunction myMethod (err, status, some_object)
. Esqueça o exemplo acima, a assinatura dosuccess
evento que você tem na resposta é realmente.success(data, status, xhr)
, mas se você só precisa do resultado, geralmente o vinculamos como.success (data)
e ambos funcionam.Em jquery.com:
Se você deseja manipuladores globais, pode usar:
fonte