Как передать данные, содержащие url посредством ajax?
Пытаюсь передать ajax'ом (jquery) на сервер данные.
Данные содержать url строку пример передаваемой строки [url]https://cs1-39v4.vkbm-cdn.net/p5/2802d043d8f07b.mp3?extra=7RnGrmjAa5yrfrJ-s80VLBAgXslU8Eet1IxMhNhEubF-QYfWdT99I9EE5mtsccJUQb9w5YSmObDQsUStoTqVjUrYXT_I8[/url] Вот код запроса
$.ajax({
dataType:"text",
url:'/iframe/json',
data:({"uA":JSON.stringify(data.response[0].url)}),
type:'POST',
success:function(msg){
console.log(msg);
}
});
Проблема возникает на стороне сервер, когда возвращаю значение var_dump(json_decode($_POST['uA'],true)); Иногда возвращается значение, иногда возвращается пустое значение. Это зависит от передаваемого url. Возможно в определенных url (пример приведен выше) присутствуют символы, обрубающие передачу данных. Возник вопрос, как правильно передавать данные, содержащие url значение? з.ы. Google не помог( |
А зачем тут вообще JSON.stringify и json_decode?
|
вообще по заданию, мне нужно передавать json-массив, но для примера я упростил передаваемую переменную.
Собственно роли это никакой не играет, хоть с JSON.stringify и json_decode, хоть без них, значение для данного url пустое. Остальные поля, такие как Name, id, передаются по отдельности нормально, а с url - пустота. |
Цитата:
data:({"uA": data.response[0].url}
|
Цитата:
|
Цитата:
Бивас, тест! (с) tmp.csp
<!DOCTYPE html>
<html ng-app='appTest'>
<head>
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
<link rel='stylesheet type=text/css href=tmp.css' />
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
var url='https://cs1-39v4.vkbm-cdn.net/p5/2802d043d8f07b.mp3?extra=7RnGrmjAa5yrfrJ-s80VLBAgXslU8Eet1IxMhNhEubF-QYfWdT99I9EE5mtsccJUQb9w5YSmObDQsUStoTqVjUrYXT_I8';
$.ajax({
dataType: "text",
url: 'tmp1.csp',
data: {'uA': url},
type: 'POST',
success:function(data){
alert(data);
}
});
});
</script>
</head>
<body>
</body>
</html>
tmp1.csp
#(%request.Data("uA",1))#
Вот, что послал - то и вернул! :) Т.ч., что-то ты не так мастыришь... |
Цитата:
|
Цитата:
Когда ошибка - изучай че тебе пришло в post ua - видимо там ошибка json-синтаксиса. Только откуда она там берется - загадка. |
Цитата:
$.ajax({
dataType:"text",
url:'/iframe/json',
data:{"uA":data.response[0].url},
type:'POST',
success:function(msg){
console.log(msg);
}
});
php: var_dump($_POST['uA']); Выявилась другая особенность. Дело как оказалось не в url, так как если использовать браузер Opera, то все работает и значение возвращается. До этого я использовал Mozilla, там все глючит. Может подскажите, почему не поддерживается кроссбраузерность? |
Цитата:
|
Переустановил Мозилу, заработала.
Спасибо всем за участие в решении проблемы. |
| Часовой пояс GMT +3, время: 22:50. |