【问题标题】:ANGULARJS: "XMLHttpRequest cannot load http://localhost:62259/Service1.svc/getAllUsers. Invalid HTTP status code 405"ANGULARJS:“XMLHttpRequest 无法加载 http://localhost:62259/Service1.svc/getAllUsers。无效的 HTTP 状态代码 405”
【发布时间】:2015-08-16 15:06:31
【问题描述】:

所以,情况是这样的:

  1. 我正在使用 AngularJS(客户端)和 C#(服务器端)开发一个 Web 应用程序;
  2. 我已经有一些网络服务运行良好,没有任何问题(gelAllUsers、getOrderDetails 等);
  3. 在我实现身份验证代码后,Web 服务停止工作。以下是错误消息:

  4. 然后我意识到问题是由于每个代码行都带有“$http.defaults.headers.common.Authorization = ...”

  5. 经过一番搜索,我知道我可能需要做一些允许授权标头的事情。

但是什么?以及如何?在哪里?

【问题讨论】:

    标签: angularjs http-headers xmlhttprequest options http-status-code-405


    【解决方案1】:

    我找到了一个解决方案,感谢 CodeProject 中的一篇文章。 由于我是 Web 开发的新手,以下是我必须遵循的详细程序才能成功执行它:

    1. 了解为什么会出现这个问题,并且只需要在 WCF 中启用 CORS:

    2. 当我使用 Visual Studio 开发我的 WCF Web 服务时,为了创建文件 Global.asax,我必须: * 在解决方案资源管理器中,右键单击项目名称 -> 添加 -> 新建项目... * 在左侧菜单中,Web -> General 并选择 Global Application Class * 写下这段代码:

      protected void Application_BeginRequest(object sender, EventArgs e)

    {

    HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "http://localhost");
    if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
    {
        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "POST, PUT, DELETE");
        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept, Authorization");
        HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
        HttpContext.Current.Response.End();
    }
    

    }

    1. 请注意,在这种情况下,需要在其中添加“授权”

      HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept, Authorization");

    2. 删除 web.config 中可能存在的类似内容,否则会因冗余数据而发生冲突。

    我说什么都说了。

    【讨论】:

      猜你喜欢
      • 2015-04-15
      • 2016-09-19
      • 2016-03-27
      • 2017-04-13
      • 2016-10-04
      • 1970-01-01
      • 2016-06-30
      • 2016-08-24
      • 1970-01-01
      相关资源
      最近更新 更多