Javascript CORS“飞行前”

时间:2018-02-12 22:20:30

标签: javascript cors preflight

我是如此绝望,因为我无法在这无尽的黑暗中看到光明,问题是,没有办法阻止“飞行前”选项的反应出现,当然也无法达到某些API ,我一直在寻找和阅读有关CORS的内容,但没有运气。

这是API中应该显示数组的函数:

function main_get() {
    header('Access-Control-Allow-Origin: *');
    header('Access-Control-Allow-Methods: POST, GET, OPTIONS');
    header('Access-Control-Allow-Headers: SOME-KEY');
    header('Access-Control-Max-Age: 1728000');
    header("Content-Length: 0");
    header("Content-Type: text/plain");
    $array['results'] = array(
        array(
            "adId"=>"8847575",
            "make"=>"SOMEMAKE",
            "model"=>"Some model",
            "year"=>"2008",
            "version"=>"The version",
        )
    );
    $this->response($array, 200);
}

我正在为API使用Codeigniter和REST插件。

请注意,标题包含在内

这是请求示例的代码:

    function createCORSRequest(method, url) {
        var xhr = new XMLHttpRequest();
        if ("withCredentials" in xhr) {
            xhr.open(method, url, true);
        } else if (typeof XDomainRequest != "undefined") {
            xhr = new XDomainRequest();
            xhr.open(method, url);
        } else {
            xhr = null;
        }
        return xhr;
    }

    function makeCorsRequest() {
        var url = 'http://*****/api/test';

        var xhr = createCORSRequest('GET', url);
        xhr.setRequestHeader('SOME-KEY', 'dffs54f78v');
        if (!xhr) {
            document.getElementById("response").innerHTML = 'CORS not supported';
            return;
        }

        xhr.onload = function () {
            var text = xhr.responseText;
            document.getElementById("response").innerHTML = text;
        };

        xhr.onerror = function () {
            document.getElementById("response").innerHTML = 'Woops, there was an error making the request.';
        };

        xhr.send();
    }

    makeCorsRequest();

从互联网上的一些CORS教程获得此代码。

仍然无法摆脱这个:

  

main.js:40个选项http:// ***** / api / test 404(未找到)   makeCorsRequest @ main.js:40(匿名)@main.js:43 localhost /:1   无法加载http:// ***** / api / test:预检的响应有   无效的HTTP状态代码404。

我做错了什么?

我知道某处可能有答案,但我已经浪费了3天才发现这件事并且一无所获。

提前致谢

0 个答案:

没有答案