下記のようにコードがあるのですが、ajax通信が成功しsuccessの下のdateを見ると、配列化されたデータの最後に謎のHTMLが挿入されてしまっています。
それによってエラーが発生している状況です。
(一部名前を変更しています)
js
1$.ajax({ 2 url: "/aaa/bbb/ccc", 3 type: "GET", 4 // dataType: "json", 5 success : function(response){ 6 console.log(response); 7 var date = JSON.parse(response); 8 }, 9 error: function(XMLHttpRequest, textStatus, errorThrown){ 10 alert('error'); 11 console.log("XMLHttpRequest : " + XMLHttpRequest.status); 12 console.log("textStatus : " + textStatus); 13 console.log("errorThrown : " + errorThrown.message); 14 } 15 }); 16
php
1 public function ccc() { 2 $this->autoRender = FALSE; 3 4 $this->loadModel('CountryAlias'); 5 $country_alias = $this->CountryAlias->find('all',array( 6 'fields' => array('name'), 7 )); 8 $country_alias_ary = []; 9 foreach ($country_alias as $country_alias){ 10 array_push($country_alias_ary, $country_alias->name); 11 } 12 13 $ary = array( 14 'country_alias' => $country_alias_ary, 15 ); 16 17 if($this->request->is('ajax')) { 18 $json = json_encode($ary, JSON_UNESCAPED_UNICODE); 19 echo $json; 20 // return $json; 21 }
var date = JSON.parse(response);のdataの中身のjson
json
1{["aaa" = [aaa","bbb","ccc"]}<pre class="cake-error"><a href="javascript:void(0);" onclick="document.getElementById('cakeErr606c5d9e2250e-trace').style.display = ...長いので以下割愛**
質問1:<pre class="cake-error"><a href="javascript:void(0);これらが何か分かりますか?
Cakephpのtemplateに関するエラーかなぁと思っていますが、よくわかりません。
質問2:<pre class="cake-error"><a href="javascript:void(0);が出ないようにする方法が分かりますか?
環境:
PHP 7.2
CakePHP 4.2.5
jquery 3.2.1
試したこと:
jsonをencodeした後に「echo」でajaxに返しているのを「return」にしてみました。結果は同じです。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/06 13:51
2021/04/06 16:40