我有一个Outlook 。当在本地(调试环境)中测试时,它正常工作,但是当Web发布到生产,而Outlook还没有发布到生产 (Outlook )时,我将收到CORS相关问题,而在发出请求时返回的错误代码E 211>是E 112404E 213,返回的错误消息是E 114对预运行的响应没有HTTP ok statusE 215。
我在Web本地版(未发布到生产版)中也有类似的问题,但我可以通过添加以下代码来修复它
在文件(服务器端)中
<location path="api/v1/plugin">
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type, Accept, Token, Key" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, OPTIONS" />
<add name="Access-Control-Max-Age" value="3600" />
<add name="Access-Control-Allow-Credentials" value="true" />
</customHeaders>
</httpProtocol>
</system.webServer>在Web控制器中更改HTTP选项
[HttpOptions]
[Route("login")]
public void EnableCors()
{
if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
HttpContext.Current.Response.StatusCode = (int)HttpStatusCode.OK;
}
}在客户端(Outlook插件)中,我使用Ajax调用Web。
$.ajax({
type: "POST",
url: call,
async: false,
headers: {
'Token': token, 'Key': keyVal
},
contentType: "application/javascript",
beforeSend: function (xhr) {
xhr.withCredentials = true;
},
crossDomain: true,
success: function (data, status, jqXHR) {
createRoamingSetting('apiData',JSON.stringify(data));
},
error: function (jqXHR, status, err) {
triggerAlert("error", err.message);
}
});当包含上述两段代码时,它在Debug构建中运行良好。我能够向Web提出请求(而不是发布- localhost)。但是,当Web发布到生产时,对Web的请求将返回404错误。
下面是我在生产过程中得到的错误的屏幕截图。



如能提供任何帮助,将不胜感激:)
发布于 2018-08-30 09:53:13
也许您应该在<remove name="OPTIONSVerbHandler" /> > system.webServer >处理程序中添加web.config中的system.webServer。如果存在这种情况,然后在IIS中检查请求文件中的HTTP谓词,则需要删除这些选项。这对我有用。

https://stackoverflow.com/questions/51984293
复制相似问题