Slim php framework с использованием nginx, с включенным CORS, статус запроса 200, но данные ответа не приходят

Я использую тонкий php-фреймворк с использованием nginx, я также включил CORS. Теперь, когда я делаю запрос к моему Rest API из какого-либо другого домена, сначала вызывается метод option, а затем вызывается метод post с фактическими данными поста. Ответ для POST — 200, но данные из API отсутствуют.

Но когда я пытаюсь сделать то же самое с тем же доменом, все работает идеально.

РАБОТАЮЩИЙ

$.ajax({
    url: "http://172.19.4.130/oam_restapi/restapi/loginpost",
    type: 'post',
    dataType: 'json',
    contentType: "application/json; charset=utf-8",
    crossDomain:true,
    data : JSON.stringify({
            "username" : "admin",
            "password" : "admin!23B",
            "domain" : "local"
            }),
    success: function(res) {
    console.log(res);
        
     
    }

});

когда этот вызов ajax выполняется как 172.19.4.130/makeajax.html

Не работает

Когда этот же вызов выполняется как localhost/makeajax.html

Я понимаю CORS, и то же самое раньше работало с APACHE

Конфигурация Nginx

location /oam_restapi/restapi/ { 
    satisfy any;
    add_header Access-Control-Allow-Origin *;
    root /html/oam_restapi/restapi/; 
    index index.php; 
    try_files $uri /oam_restapi/restapi/index.php; 
}
    

person mobman    schedule 02.03.2016    source источник


Ответы (1)


Вам нужно иметь заголовок Access-Control-Allow-Origin в ответе от бэкенда.

Взгляните на https://github.com/palanik/CorsSlim.

person fire    schedule 02.03.2016