Как передать данные, содержащие 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, время: 03:54. |