javascript - Polymer - Iron Ajax - 如何处理错误响应

标签 javascript php ajax polymer

我有一个标准的iron-ajax元素,它发送带有电子邮件密码登录请求到后端。

<iron-ajax
     id="postLoginForm"
     method="POST"
     verbose
     url="../../login"
     content-type="application/json"
     handle-as="json"
     last-error="{{lastError}}"
     last-response="{{lastResponse}}"
     on-response="_handleLoginResponse"></iron-ajax>

我的_handleLoginResponse是这样的,顺便说一句,它工作得很好:

_handleLoginResponse: function (event) {
    console.log(event.detail.response);
},

始终是我从服务器收到的响应:

{"email":["电子邮件字段为必填项。"],"password":["密码字段为必填项。"]}

现在的问题是,_handleLoginResponse 方法在响应的状态代码200<时被调用.

但是,如果登录失败,服务器会发送 422 Unprocessable Entity状态代码,该状态代码不会触发 _handleLoginResponse 方法。尽管响应包含上述 json 字符串。

我想做的事情:

我想在没有凭据的情况下发送请求。如果请求连续失败,我会收到状态代码不是 200 的响应。我想在页面上显示错误。

但是当状态代码不是 200 时,如果 _handleLoginResponse 方法未触发,我不知道如何访问响应。

当我收到 422 状态代码时,如何触发 _handleLoginResponse 方法?

最佳答案

所有 4** 和 5** 都是错误代码。这意味着您可能还必须监听iron-ajax error 事件。

关于javascript - Polymer - Iron Ajax - 如何处理错误响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35192749/

相关文章:

php - 使用 PHP/Apache 限制对静态文件(html、css、img 等)的访问

javascript - 点击事件中断提交事件

javascript - 用另一个函数替换一个函数的 webpack 插件

javascript的replace()方法采用带有2个参数的函数?

javascript - 奇怪的 Javascript 时区与 Date()

php - 定义矩阵的 Symfony 配置

php - 多维数组到PHP中的单个数组

javascript - AJAX 表单未提交并给出错误

php - 脚本 php 而不是 ajax 中的 url

javascript - 调用preventDefault()时AJAX表单重新加载页面