我有一个标准的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/