Laravel-представление показывает Chrome Dev-Tools вместо перенаправления на блейд - PullRequest
0 голосов
/ 15 мая 2019

Good Day stackoverflow-Devs,

Я работаю над проектом кампании, где вы можете создавать, редактировать и просматривать свою кампанию, прежде чем опубликовать ее. Я использую MySQL и базу данных реального времени Firebase для хранения данных. Я написал цикл for JavaScript, и внутри есть оператор if с вызовом ajax для отправки данных в контроллер laravel, где контроллер просто передает эти данные в представление.

Я пытался использовать следующие методы просмотра:

 return view('view-campaign')->with('img',$img); //This one used to work perfectly

и

 return redirect('view-campaign')->with('img',$img);

и, наконец,

 return view('view-campaign', ['img',$img]);

Вот мой исходный код:

Кнопка

<td>
                                        <a onclick="viewCampaign('{{$item->id}}')" class="btn btn-success mb-2"
                                           data-toggle="tooltip" title="view campaign">
                                            <i class="fa fa-edit"></i> 
                                        </a>
                                  </td>

Javascript-Function

function viewCampaign(id){
        console.log(id);
        // Your web app's Firebase configuration
        var firebaseConfig = {
            apiKey: "apiKey",
            authDomain: "authDomain",
            databaseURL: "databaseURL",
            projectId: "projectId",
            storageBucket: "storageBucket",
            messagingSenderId: "messagingSenderId",
            appId: "appId"
        };
        // Initialize Firebase
        firebase.initializeApp(firebaseConfig);
        database = firebase.database();
        var ref = database.ref("CampaignCollection");

        //retrieve firebase stored data
        ref.on('value', function getData(data){
            var obj = data.val();
            var keys = Object.keys(obj);

            for(var i = 0; i < keys.length; i++) {
                var k = keys[i];
                var F_id = obj[k].id;
                var img = obj[k].Poster;
                var name = obj[k].Name;

                if(id == F_id){
                    $.ajax({
                        type: "POST",
                        url: "/viewCampaign",
                        data: {
                            'img': img,
                            "_token": "{{ csrf_token() }}",
                        },
                    })
                }
            }
        })
    }

просмотр маршрута кампании

  Route::post('viewCampaign','CampaignController@viewCampaign');

Контроллер кампании просмотра

public function viewCampaign(){

        $img = $_POST['img'];

        return view('view-campaign')->with('img',$img);

    }

Ответ

enter image description here

Ожидаемый выход - перенаправить результат на блейд и отобразиться как веб-страница, а не как ответ dev-tool.

1 Ответ

0 голосов
/ 15 мая 2019

Что вы делаете, это отправляете ajax-запрос по обычному веб-маршруту. Он вернет веб-страницу. Так что эта веб-страница будет возвращена как ответ Ajax. Возможно, вам потребуется отправить данные в виде запроса формы.

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