我是如此绝望,因为我无法在这无尽的黑暗中看到光明,问题是,没有办法阻止“飞行前”选项的反应出现,当然也无法达到某些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天才发现这件事并且一无所获。
提前致谢