首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >产品发布中的CORS相关问题Outlook

产品发布中的CORS相关问题Outlook
EN

Stack Overflow用户
提问于 2018-08-23 11:02:48
回答 1查看 689关注 0票数 0

我有一个Outlook 。当在本地(调试环境)中测试时,它正常工作,但是当Web发布到生产,而Outlook还没有发布到生产 (Outlook )时,我将收到CORS相关问题,而在发出请求时返回的错误代码E 211>是E 112404E 213,返回的错误消息是E 114对预运行的响应没有HTTP ok statusE 215

我在Web本地版(未发布到生产版)中也有类似的问题,但我可以通过添加以下代码来修复它

在文件(服务器端)中

代码语言:javascript
复制
<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选项

代码语言:javascript
复制
[HttpOptions]
    [Route("login")]

    public void EnableCors()
    {
        if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
        {
            HttpContext.Current.Response.StatusCode = (int)HttpStatusCode.OK;
        }
    }

在客户端(Outlook插件)中,我使用Ajax调用Web。

代码语言:javascript
复制
 $.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错误。

下面是我在生产过程中得到的错误的屏幕截图。

如能提供任何帮助,将不胜感激:)

EN

回答 1

Stack Overflow用户

发布于 2018-08-30 09:53:13

也许您应该在<remove name="OPTIONSVerbHandler" /> > system.webServer >处理程序中添加web.config中的system.webServer。如果存在这种情况,然后在IIS中检查请求文件中的HTTP谓词,则需要删除这些选项。这对我有用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51984293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档