使用jQuery Ajax发送Zalando登录POST请求返回403错误原因查询
Zalando登录请求返回403的原因汇总
- CSRF校验不通过
绝大多数网站的登录接口都会校验CSRF令牌,你当前的请求没有携带站点要求的CSRF凭证,服务器直接拦截异常请求返回403。 - request参数已失效
你提交的request参数是登录页面加载时由服务器下发的一次性临时参数,内部包含的state、nonce等值均有短时效限制,且只能使用一次。你直接复用之前抓取的旧参数,会被服务器判定为非法请求。 - 请求头配置错误
$.post默认发送的Content-Type为application/x-www-form-urlencoded,但Zalando的登录接口通常要求请求体为JSON格式,需要手动指定Content-Type: application/json;同时缺失Referer、Origin、User-Agent等必要请求头也会触发403。 - 跨域校验失败
如果你的代码运行在非Zalando官方域名下,浏览器同源策略会拦截跨域请求,就算本地绕过跨域限制,服务器端校验Origin字段不属于白名单域名时也会直接返回403。 - 反爬机制拦截
Zalando有完整的反爬策略,你发起登录请求前没有携带访问登录页时下发的会话Cookie,请求行为不符合正常用户操作逻辑,会被系统判定为机器人直接拦截。
内容的提问来源于stack exchange,提问作者Luigi V.
相关产品推荐
相关产品推荐

