Angular CORS飞行前响应为405(方法不允许)错误
我正在尝试从我的angular web应用程序上传foursquare用户的个人资料照片。我正在使用“用户/更新”端点- 这是我的模板Angular CORS飞行前响应为405(方法不允许)错误,angular,cors,foursquare,angular-http,http-status-code-405,Angular,Cors,Foursquare,Angular Http,Http Status Code 405,我正在尝试从我的angular web应用程序上传foursquare用户的个人资料照片。我正在使用“用户/更新”端点- 这是我的模板 <input type="file" (change)="fileChange($event)" placeholder="Upload file"> 我收到405(不允许使用方法)并且飞行前的响应在控制台中有无效的HTTP状态代码405错误。您可能希望从前端JavaScript代码中删除以下内容开始: headers.append("Acces
<input type="file" (change)="fileChange($event)" placeholder="Upload file">
我收到405(不允许使用方法)并且飞行前的响应在控制台中有无效的HTTP状态代码405错误。您可能希望从前端JavaScript代码中删除以下内容开始:
headers.append("Access-Control-Allow-Origin","true")
Access Control Allow Origin
是服务器发送的响应头;将其添加为请求头的唯一效果是触发一个将失败的请求
您现在看到的情况是,由于您的代码添加了accesscontrolalloworigin
作为请求头,您的浏览器正在发送一个请求;对于浏览器来说,考虑飞行前的成功,<代码>https://api.foursquare.com/v2/users/self/update端点必须使用200 OK或204状态代码响应选项
请求
但您得到的405“(不允许使用方法)”响应表明Foursquare API端点未配置为处理选项
请求。因此,飞行前会失败,您的浏览器永远不会继续执行POST
请求它试图发送的代码
但是,对来自该Foursquare API端点的非
选项
请求的响应包括访问控制允许源
响应头。因此,只要您没有从客户端添加访问控制允许源代码,只要请求没有其他特征会触发浏览器进行预飞行,问题中的代码就应该按预期工作。如果部署后IIS上出现此问题,我建议您在Web.config内部标记中添加以下内容:
<modules>
<remove name="WebDAVModule" />
</modules>
<modules>
<remove name="WebDAVModule" />
</modules>