ANGULARJS:" XMLHttpRequest无法加载http:// localhost:62259 / Service1.svc / getAllUsers。无效的HTTP状态代码405"

时间:2015-06-02 17:20:44

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

所以,情况就是这样:

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

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

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

  6. 但是什么?怎么样?在哪里?

1 个答案:

答案 0 :(得分:1)

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

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

  2. 当我使用Visual Studio开发我的WCF Web服务时,为了创建文件Global.asax,我不得不:     *在解决方案资源管理器中,右键单击项目名称 - >添加 - >新物品...     *在左侧菜单中,Web - >常规和选择全局应用程序类     *写下这段代码:

    protected void Application_BeginRequest(object sender,EventArgs e)

  3. {

    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中可能包含的类似内容,否则由于冗余数据会导致冲突。

    3. 我说的是我说的一切。