簡體   English   中英

在 COR 響應期間收到服務器 500 錯誤

[英]getting a server 500 error during a CORs response

我正在嘗試從 Chrome 擴展程序發送 JSON 緩沖區,但收到內部 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:[Fri Oct 26 18:22:07.162178 2018] [proxy_fcgi:error] [pid 2001:tid 139930806171392] [client 69.124.178.161] 來自 Badindex 的腳本頭'錯誤索引'571 :{"0":["{choose}","IOS","Mac"," [2018 年 10 月 26 日星期五 18:22:07.163669] [proxy_fcgi:error] [pid 2001:tid 139930806171392] [client 6417.22. :57141] AH01070:解析腳本頭時出錯 [2018 年 10 月 26 日星期五 18:22:07.163679] [proxy_fcgi:error] [pid 2001:tid 139930806171392] (22)Invalid1617AH 參數:Error 16107: 1707:1600000000000000請求:[Fri Oct 26 18:22:33.796554 2018] [proxy_fcgi:error] [pid 2001:tid 139930797778688] [client 69.124.178.164:57179] 來自腳本的錯誤索引:'格式錯誤的標題:php ":["{choose}","IOS","Mac"," [2018 年 10 月 26 日星期五 18:22:33.796627] [proxy_fcgi:error] [pid 2001:tid 139930797778688] [客戶端 69.1161070000]7AH :錯誤解析腳本頭 [Fri Oct 26 18:22:33.796633 2018] [proxy_fcgi:error] [pid 2001:tid 139930797778688] (22 ) 無效參數:[client 69.124.178.164:57179] AH01075:將請求分派到:

表示格式錯誤的標頭的行實際上是我從服務器到擴展的有效負載。 Is 不是標頭,而是有效載荷。

經過一個多月的考慮,這是我的服務器或我的代碼,結果證明是 codeigniter 中未經證實的錯誤。 我換了

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

使用直接 php 調用:

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

現在它完美運行!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM