Jquery ERR_SPDY_PROTOCOL_ERROR Ajax.NETWebAPI

Jquery ERR_SPDY_PROTOCOL_ERROR Ajax.NETWebAPI,jquery,ajax,azure,ssl,iis,Jquery,Ajax,Azure,Ssl,Iis,尝试对Azure上IIS上托管的.NET Web Api执行Ajax调用时遇到非常奇怪的错误 我已经从let's encrypt获得了我的SSL证书,它已正确应用于网站。当我尝试执行ajax调用时,我得到: net::ERR\U SPDY\U协议\U错误 如果小提琴手是打开的,所有的工作正常。当Fiddler关闭时,我们得到了错误。常规的旧HTTP工作正常。我也有同样的问题。在我的例子中,修复方法是在进行API调用时更新授权头,使其不包含JSON对象。可能是我一开始就不该做的事 范例 heade

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

我已经从let's encrypt获得了我的SSL证书,它已正确应用于网站。当我尝试执行ajax调用时,我得到:

net::ERR\U SPDY\U协议\U错误


如果小提琴手是打开的,所有的工作正常。当Fiddler关闭时,我们得到了错误。常规的旧HTTP工作正常。

我也有同样的问题。在我的例子中,修复方法是在进行API调用时更新授权头,使其不包含JSON对象。可能是我一开始就不该做的事

范例

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

我也有同样的问题。在我的例子中,发生这种情况的原因是API无法连接到SQL Server(因为我停止了服务,忘记重新启动它),一条更相关的错误消息会在一秒钟内使问题变得明显,而不是在几分钟内:——|

我的解决方案是Chrome对授权头的格式要求严格

标题的格式为scheme-token,在scheme后面不要包含冒号,这一点很重要。我的旧式代码的格式为
承载:token
,但失败了。我把它改为
Bearer thetoken
,现在一切都正常了

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

对我来说,问题是我发送了一个空的授权头

登录到我的应用程序(AngularJS SPA)会在JSON对象中发送用户名/密码,如果登录有效,则返回JWT,该JWT随后用于授权标头-例如,用于未来API请求的承载{JWT}


无法发送授权标头时,未发送授权标头解决了此问题。

David,你找到答案了吗?有完全相同的问题。Net WebAPI托管在Azure中。突然在我们的生产系统中发生,应用程序或主机没有更改。这是一个JavaScript语法错误-请仔细检查Auth头的语法。这正是我们在web API中遇到的问题。奇怪的是,它只发生在一些服务器上,而不是其他服务器上。我们能够用这个解决我们的问题。谢谢