1. ホーム
  2. php

ThinkPHPのリソースがDocumentとして解釈され、MIMEタイプapplication/jsonで転送されると、jsが無効になる。

2022-02-14 02:17:47
<パス

を使用する場合

$this->ajaxReturn(array('file'=>$outputFileName));

headerタグは、データを返すときに強制的に Content-Type:application/json; charset=utf-8 に変更されるため、 header('Content-Type:text/html; charset=utf-8 ') を設定してもうまくいきません。リクエストのデータ型とリターンのデータ型が異なる場合、エラーが発生します。

リソースは Document として解釈されるが、MIME タイプは application/json で転送される。

後続のjsが実行できない。

回避策
これは、以下の方法で解決できます。

header('Content-Type:text/html; charset=utf-8');
echo json_encode($data);

<イグ