получение ошибки сервера 500 во время ответа CORs - PullRequest
0 голосов
/ 26 октября 2018

Я пытаюсь отправить буфер JSON из расширения Chrome, но получаю внутреннюю ошибку 500. Вот код, который отправляет буфер.

var xhr = new XMLHttpRequest();
xhr.onerror = function(req,textStatus,errorThrown) {
    console.log(textStatus);
    alert('on-error')};

    xhr.open('POST', url, true);
    xhr.setRequestHeader("Content-type", 'application/json');
    xhr.setRequestHeader("X-Requested-With",'XMLHttpRequest');
    xhr.setRequestHeader("Access-Control-Allow-Origin", '*');
	
    xhr.onload = function () {   //response will go here
        if(xhr.status == 500) {
            alert("server error 500");
        }

На стороне сервера Apache Linux я отправляю ответ с

enter code here
       $this->output
            ->set_content_type('application/json')
            ->set_header("Access-Control-Allow-Origin", "*")
            ->set_output(json_encode($table));

Я застрял в этой проблеме более месяца, и мне действительно нужны некоторые идеи о том, что я делаю неправильно. У меня есть отладчики на обеих машинах. Я вижу, что буфер работает правильно, и я вижу, что он получен правильно. Я думаю, что правильно устанавливаю заголовок ответа, но всегда получаю ошибку 500. Кстати, он отлично работает с WAMP на моем локальном хосте.

Это из журнала apache error_log: [Пт 26 октября 18: 22: 07.162178 2018] [proxy_fcgi: error] [pid 2001: tid 139930806171392] [клиент 69.124.178.164:57141] искаженный заголовок из скрипта 'index.php' : Неверный заголовок: {"0": ["{выбрать}", "IOS", "Mac", " [Пт 26 октября 18: 22: 07.163669 2018] [proxy_fcgi: error] [pid 2001: tid 139930806171392] [клиент 69.124.178.164:57141] AH01070: Ошибка синтаксического анализа заголовков сценария [Пт 26 октября 18: 22: 07.163679 2018] [proxy_fcgi: error] [pid 2001: tid 139930806171392] (22) Недопустимый аргумент: [клиент 69.124.178.164:57141] AH01075: Ошибка отправки запроса: [Пт 26 октября 18: 22: 33.796554 2018] [proxy_fcgi: error] [pid 2001: tid 139930797778688] [клиент 69.124.178.164:57179] искаженный заголовок из сценария 'index.php': неверный заголовок: {"0": [ "{} выбрать", "IOS", "Mac",» [Пт, 26 октября 18: 22: 33.796627 2018] [proxy_fcgi: error] [pid 2001: tid 139930797778688] [client 69.124.178.164:57179] AH01070: Ошибка синтаксического анализа заголовков сценария [Пт 26 октября 18: 22: 33.796633 2018] [proxy_fcgi: error] [pid 2001: tid 139930797778688] (22) Недопустимый аргумент: [клиент 69.124.178.164:57179] AH01075: Ошибка отправки запроса на:

Строка, которая говорит, что искаженный заголовок - фактически моя полезная нагрузка от сервера до Расширения. Это не заголовок, это полезная нагрузка.

1 Ответ

0 голосов
/ 27 октября 2018

Через месяц после того, как я подумал, что это мой сервер или мой код, он оказался неподтвержденной ошибкой в ​​codeigniter. Я заменил

      $this->output
                ->set_content_type('application/json')
                ->set_header("Access-Control-Allow-Origin", "*")
                ->set_output(json_encode($table));

with direct php calls:

                header('Content-type: application/json');
                header("Access-Control-Allow-Origin: *");
                echo ($json);

Теперь работает отлично!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...