Cors access-control-allow-origin标头不存在

时间:2016-06-28 13:40:28

标签: jquery cors owin katana

我有一个owin / katana项目。所以没有IIS。

public void Configuration(IAppBuilder app)
{
    app.Run(context =>
    {
        context.Response.ContentType = "application/json";
        context.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" }); 
        // etc.
    }                

和客户端这个jQuery:

$.ajax({
    dataType: "json",
    url: labelPrintLoc,
    success: function (msg) {
        console.log(msg);
        if (msg === "Done")
            alert("Printed!");
        else {
            alert("Error, check the log on the server!");
        }
    },
    error: function(a, b, c) {
        console.log(a);
        console.log(b);
        console.log(c);
    }
});

enter image description here

  

XMLHttpRequest无法加载http://xxxx:9000   No' Access-Control-Allow-Origin'标头出现在请求的资源上。原因http://yyy因此不允许访问。

我见过类似的问题https://stackoverflow.com/a/6516634/169714,但没有AppendHeader方法。我认为*让每个人都可以访问?

修改会尝试使用此网址中的选项3:https://researchaholic.com/2015/04/28/how-to-fix-no-access-control-allow-origin-header-in-asp-net-webapi/

edit2 添加nuget和此行 app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);并删除带有headers.add的行给出了500错误,因为原点已设置。

1 个答案:

答案 0 :(得分:1)

这是一个网络服务器问题。

将其添加到配置文件中。它对应于apaches Access-Control-Allow-Origin "*"

<appSettings>
  <add key="cors:Origins" value="*" />
  <add key="cors:Headers" value="*" />
  <add key="cors:Methods" value="GET, POST, OPTIONS, PUT, DELETE" />
</appSettings>

这将启用Katana / Owin设置的跨源请求。

This article也很有用。