猿问

从laravel ajax返回的json中的每个斜杠中获取额外的反斜杠“\”

我正在尝试对我的 laravel 应用程序使用 ajax 调用,但我得到了一个额外的斜杠,甚至是反斜杠或正斜杠。任何人都可以告诉我为什么会发生这种情况以及解决方案是什么,因为它连续浪费了我三个 3 小时。这是我的ajax。


$(document).ready(function(){


            $('#status').change(function() {


           var status=$('#status').val()

           alert(status);

                $.ajax({

                type:'GET',

                url:'{{route('prescription_status')}}',

                data:{status:status},

                datatype:"json",

                success:function(data){

                        alert(data);

                    $('.filebody').html(data);

                }

            });

        });

        });

这是我的控制器。


public function getStatus(Request $request)

    {


        $files  = Fileupload::where('status',$request->status)->get();

        $users=User::all();

        $output='';

        foreach($files as $file) {

            $output .= '<tr>';

            foreach ($users as $user) {

                if ($user->id == $file->patient_id) {

                    $output .= "<td >" . $user->first_name . " " . $user->last_name."</td>" ;

                }

            }

            foreach ($users as $user) {

                if ($user->id == $file->user_id) {

                    $output .= "<td >" .$user->first_name . "" . $user->last_name."</td>" ;

                }

              }

            $output.="<td>".$file->filename."</td> <td>".$file->status."</td><td><a href='".route('download-file',[$file->id])."'>Download</a></td>";


            $output .="</tr>";

        }



//        $data=array(['output'=>$output]);

        echo json_encode($output) ;

    }

我得到的输出。



心有法竹
浏览 82回答 1
1回答

慕姐4208626

发生这种情况是因为,在某些情况下,未转义/可能会导致问题。因为在 JSON 中,"\/"和"/"是等价的,所以这不是问题。解析 JSON 时,转义字符将消失。您的问题是您的 JavaScript 试图将 JSON 视为 HTML 而不是将其解析为 JSON。有两个原因:内容类型默认情况下,PHP 声称输出text/html,但您正在输出 JSON 并且没有更改默认值。header("Content-Type:&nbsp;application/json")覆盖您可以通过指定dataType.您尝试这样做,但未能使用大写&nbsp;T。JavaScript 区分大小写。
随时随地看视频慕课网APP

相关分类

Html5
我要回答