XMLHttpRequest不能加载:只有在Ajax jQuery头


XMLHttpRequest cannot load : only with headers in Ajax jQuery

我尝试从我自己的API获得JSON数据,从$。使用jQuery的ajax方法。我必须有一个标题'Authorization-api-key'在我的请求,否则我将有一个401状态码。

$.ajax({
        type: "GET",
        headers: {'Authorization-api-key' : 'key'},
        dataType: "json",
        crossDomain: true,
        url: "http://urlofmyonlineapi.com/api/ressource",
        success: function (data) {
            alert(data);
        }
});

我在stackoverflow上读了几个关于CORS和"xmlhttprequest无法加载"问题的线程。所以,在我的API中,我在响应中添加了这些头(我使用Slim框架):

$app->response->headers->set('Access-Control-Allow-Origin', '*');
$app->response->headers->set('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
$app->response->headers->set('Access-Control-Allow-Headers', '*');
$app->response->headers->set('Access-Control-Allow-Credentials', 'true');

如果我在$。Ajax的'headers:{…}的参数,我在浏览器控制台有两个错误:

    错误选项">
  1. XMLHttpRequest cannot load错误

如果我删除头,我没有错误,但我有我的401状态码。如果我删除头和我的API的身份验证与请求的头中的关键字,我得到我的数据。

我已经解决了这个问题:我的API不接受OPTIONS请求。(Ajax与jQuery需要做一个OPTIONS预请求)