2016-07-02 1 views
0

Привет, интересно, когда я возвращаю результат JSON, используя laravel 5, он заменяет каждый '/''\/', который вызывает у меня проблемы, поскольку URL-адрес, который я возвращаю через контроллер, больше не работаетlaravel json result заменить «/» на « /»

, например, в контроллере:

$url = 'icon/nature/animals/cat-2.png'; 
$result = array('data'=>$url); 

return response()->json($result); 

в ответ Jquery он возвращает 'icons\\/nature\\/animals\\/cat-2.png'

Как можно избежать, чтобы это произошло, спасибо

+0

это ошибка или вы знаете, что это должно быть: '$ Результат = массив ('данные' => $ iklans);' но возможно ?: '$ Результат = массив ('данные' => $ url); ' – W92

+0

@ W92 нет, мой плохой мой код был $ url – Hendry

+1

Я не знаю, какую библиотеку вы используете, но обычный json_decode имеет специальную возможность не выходить из слэшей -' echo json_encode ($ result, JSON_UNESCAPED_SLASHES); ' – splash58

ответ

0

вы должны использовать encodeURI (встроенный в JavaScript функции):

Например:

encodeURI('http:\/\/www.google.com') => 'http://www.google.com' 

encodeURI('icons\/nature\/animals\/cat-2.png') => 'icons/nature/animals/cat-2.png' 
0

Это проект в json() метода:

public function json($data = [], $status = 200, array $headers = [], $options = 0) 

Используйте параметр $options для установки ваши желаемые варианты выхода. Чтобы просмотреть полный список констант JSON, проверьте эту ссылку: http://php.net/manual/en/json.constants.php

Вам понадобится постоянная константа JSON_UNESCAPED_SLASHES, чтобы достичь нужной вам поведенческой ситуации.