api-router
api-router copied to clipboard
CORS, nefungující Access-Control-Allow-Origin
nenapadá někoho proč mi nefunguje CORS? potřebuji se k api dostat z jquery
` public function actionCreate() { $response = $this->getHttpResponse(); $response->addHeader('Access-Control-Allow-Origin', ""); $response->addHeader('Access-Control-Allow-Methods', ""); $response->addHeader('Access-Control-Allow-Headers', 'X-Requested-With');
$post = $this->getRequest()->getPost();
$this->sendJson($post);
}
`
zdá se že nette nevrací správné hlavičky
tady je jquery požadavek
` (function ($) { $.ajaxPost = function (url, data, success) { var ajaxSettings = { url: url, method: "POST", data: JSON.stringify(data), contentType: "application/json; charset=utf-8", crossDomain: true, dataType: "json", success: function (result) { if (result.status !== "ok") { alert("Napodařilo se provést požadované úpravy!"); }
if (result.info) {
alert(result.info);
}
if (success) {
success(result);
}
},
error: function (xhr, status) {
alert("Nebylo možné zpracovat data!");
}
};
$.ajax(ajaxSettings);
};
})(jQuery);
`
díky za tipy jak tohle řešíte
header('Access-Control-Allow-Headers: accept, content-type, authorization'); header('Access-Control-Allow-Methods: GET,POST,OPTIONS,DELETE,PUT'); header('Access-Control-Allow-Origin: *'); if ("OPTIONS" === $_SERVER['REQUEST_METHOD']) { return; }
Používám v index.php hned na začátku tohle, ty allow headers si uprav podle toho, co potřebuješ