Заголовок Cors access-control-allow-origin отсутствует

У меня есть проект owin/katana. Так что никакого ИИС.

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);
    }
});

введите здесь описание изображения

XMLHttpRequest не может загрузить http://xxxx:9000 В запрошенном файле отсутствует заголовок "Access-Control-Allow-Origin". ресурс. Таким образом, доступ к происхождению http://yyy запрещен.

Я видел этот похожий вопрос https://stackoverflow.com/a/6516634/169714, но метода AppendHeader нет. Я думал, что * дал доступ всем?

edit попробует вариант 3 из этого URL: 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, потому что источник уже установлен.


person JP Hellemons    schedule 28.06.2016    source источник


Ответы (1)


Это проблема веб-сервера.

Добавьте это в свой файл конфигурации. Он соответствует апачам 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.

Эта статья может быть полезно тоже.

person The F    schedule 28.06.2016
comment
Это самостоятельно. Оуин/катана - person JP Hellemons; 28.06.2016
comment
разве system.webserver не только для iis? попробую 2 часть. Nuget owin.cors вызывает у меня проблемы с повторяющимся заголовком источника. - person JP Hellemons; 28.06.2016
comment
Да, я думаю, что вы правы, во-первых, ‹appSettings› должен работать для установки Katana / Owin. - person The F; 28.06.2016
comment
Кажется, что настройки приложения, пакет nuget и app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll); исправили это. - person JP Hellemons; 28.06.2016
comment
Прохладный! Ничего, если я добавлю это в свой ответ, чтобы сделать его более полным? Если нет, не стесняйтесь обновлять его самостоятельно. - person The F; 28.06.2016