Could not add Access-Control-Allow-Origin to my WCF library Project

后端 未结 5 2128
借酒劲吻你
借酒劲吻你 2021-02-09 09:03

I\'m trying to understand why this ajax called doesn\'t work

 $.ajax({
        type: \'GET\',
        url: \"http://localhost:8732/Design_Time_Addresses/InMotion         


        
相关标签:
5条回答
  • 2021-02-09 09:30

    Put this in the service side of your configuration file

    <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
      </customHeaders>
    </httpProtocol>
    </system.webServer>
    

    It works for me! Thanks!

    0 讨论(0)
  • 2021-02-09 09:35

    I was getting the same problem when working with my WCF service directly in Visual Studio, in Chrome and Firefox. I fixed it with the following:

    Edit the Global.asax file with below function:

                private void EnableCrossDomainAjaxCall()
                {
                    HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
    
                    if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
                    {
                        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST");
                        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Authorization, Accept");
                        HttpContext.Current.Response.End();
                    }
                }
    

    Then call the function from

        protected void Application_BeginRequest(object sender, EventArgs e)
        {
           EnableCrossDomainAjaxCall();
        }
    

    You can get more information from the following url:

    http://blog.blums.eu/2013/09/05/restfull-wcf-service-with-cors-and-jquery-and-basic-access-authentication.

    0 讨论(0)
  • 2021-02-09 09:42

    This link would help: http://enable-cors.org/

    You need to add the following headers in your response that is sent back to the client:

    //Allow all domains

    Access-Control-Allow-Origin: *

    OR

    //Allow specific domains

    Access-Control-Allow-Origin: http://example.com:8080 http://foo.example.com

    0 讨论(0)
  • 2021-02-09 09:56

    the solution is to create a file Global.asax

    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");
            HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
            HttpContext.Current.Response.End();
        }
    }
    
    0 讨论(0)
  • 2021-02-09 09:56

    Another way of handling this, which is better for self-hosted services, can be found here.

    0 讨论(0)
提交回复
热议问题