ERR_SPDY_PROTOCOL_ERROR Ajax .net web api

时间:2017-08-02 18:05:31

标签: jquery ajax azure ssl iis

尝试对Azure上的IIS上托管的.NET Web Api执行Ajax调用时遇到一个非常奇怪的错误。

我已通过加密获得了SSL证书,它已正确应用于网站。当我尝试执行ajax调用时,我得到:

净:: ERR_SPDY_PROTOCOL_ERROR

如果Fiddler打开,一切正常。随着Fiddler关闭,我们得到了错误。普通的旧HTTP工作得很好。

4 个答案:

答案 0 :(得分:4)

对我来说,解决方案是Chrome严格遵守Authorization标头的格式。

标头的格式为方案令牌,并且请务必在方案后不要包含冒号,这一点很重要。我的旧样式代码的格式为Bearer: thetoken,但失败了。我将其更改为Bearer thetoken,现在一切正常。

headers: {
    'Authorization': 'Bearer ' + token
}

答案 1 :(得分:2)

对我来说,问题在于我正在发送一个空的Authorization标头。

我的应用程序(AngularJS SPA)的登录名在JSON对象中发送用户名/密码,如果登录名有效,则返回JWT,然后将其用作Authorization标头-例如承载{JWT}用于将来的API请求。

没有内容可发送时不发送Authorization标头解决了该问题。

答案 2 :(得分:0)

我有同样的问题。我的情况下的修复是在进行API调用时更新Authorization标头以不包含JSON对象。可能是我首先不应该做的事情。 ; - )

实施例

headers: {
    'Authorization': 'Bearer ' + accessToken
}

答案 3 :(得分:0)

我有同样的问题。就我而言,这是因为API无法与SQL Server建立连接(因为我已停止了该服务并忘记了重新启动它。)对我来说,但是,更相关的错误消息会使问题变得很明显。一秒钟内……而不是几分钟:-|