Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.03.2015, 10:12
Интересующийся
Отправить личное сообщение для Poveritov Посмотреть профиль Найти все сообщения от Poveritov
 
Регистрация: 28.11.2011
Сообщений: 21

Как передать данные, содержащие 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 не помог(

Последний раз редактировалось Poveritov, 03.03.2015 в 10:18.
Ответить с цитированием
  #2 (permalink)  
Старый 03.03.2015, 10:39
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

А зачем тут вообще JSON.stringify и json_decode?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 03.03.2015, 10:50
Интересующийся
Отправить личное сообщение для Poveritov Посмотреть профиль Найти все сообщения от Poveritov
 
Регистрация: 28.11.2011
Сообщений: 21

вообще по заданию, мне нужно передавать json-массив, но для примера я упростил передаваемую переменную.
Собственно роли это никакой не играет, хоть с JSON.stringify и json_decode, хоть без них, значение для данного url пустое.
Остальные поля, такие как Name, id, передаются по отдельности нормально, а с url - пустота.
Ответить с цитированием
  #4 (permalink)  
Старый 03.03.2015, 11:00
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Poveritov
data:({"uA":JSON.stringify(data.response[0].url)})
достаточно просто написать

data:({"uA": data.response[0].url}
Ответить с цитированием
  #5 (permalink)  
Старый 03.03.2015, 11:09
Интересующийся
Отправить личное сообщение для Poveritov Посмотреть профиль Найти все сообщения от Poveritov
 
Регистрация: 28.11.2011
Сообщений: 21

Сообщение от ksa Посмотреть сообщение
достаточно просто написать

data:({"uA": data.response[0].url}
К сожалению, нет. В этом случае просто возвращается NULL.
Ответить с цитированием
  #6 (permalink)  
Старый 03.03.2015, 11:14
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Poveritov
К сожалению, нет. В этом случае просто возвращается NULL.
Да ну нафик!

Бивас, тест! (с)

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))#

Вот, что послал - то и вернул! Т.ч., что-то ты не так мастыришь...
Ответить с цитированием
  #7 (permalink)  
Старый 03.03.2015, 11:23
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от ksa
что-то ты не так мастыришь
Он json_decode не убрал из php.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 03.03.2015, 11:27
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Poveritov
иногда возвращается пустое значение
Смотри ошибку через json_last_error()
Когда ошибка - изучай че тебе пришло в post ua - видимо там ошибка json-синтаксиса. Только откуда она там берется - загадка.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #9 (permalink)  
Старый 03.03.2015, 11:43
Интересующийся
Отправить личное сообщение для Poveritov Посмотреть профиль Найти все сообщения от Poveritov
 
Регистрация: 28.11.2011
Сообщений: 21

Сообщение от danik.js Посмотреть сообщение
Он json_decode не убрал из php.
Нет, все исправил. Вот код
$.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, там все глючит. Может подскажите, почему не поддерживается кроссбраузерность?
Ответить с цитированием
  #10 (permalink)  
Старый 03.03.2015, 11:53
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Poveritov
Выявилась другая особенность. Дело как оказалось не в url, так как если использовать браузер Opera, то все работает и значение возвращается. До этого я использовал Mozilla, там все глючит. Может подскажите, почему не поддерживается кроссбраузерность?
Я запустил свой пример в ФФ - все работает, все передается как нужно...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Получить данные ajax запросом mue Общие вопросы Javascript 2 17.12.2012 12:49
Как передать данные из первого deferred.done в последующие wwwboy jQuery 2 13.12.2011 00:19
Как передать символ левой угловой скобки в Ajax POST ? didalek AJAX и COMET 16 30.11.2011 11:36
Как в страницу подгружаемую через AJAX передать $_GET? pagal AJAX и COMET 7 08.11.2011 21:09