Я отправил данные в PHP-скрипт через Ajax и хочу вернуть несколько данных в JSON-кодировке. К сожалению, когда я хочу получить доступ к первым и вторым данным, я получаю только двойные кавычки ("). Я пробовал несколько примеров из StackOverflow, но безуспешно, и я не знаю почему. В следующей части я начинаю с dataType , а затем успех.
dateType: "json",
success:function(data)
{
alert(data.first);
if (data.last)
{
$('#urlfull').val(data.last);
}else{
// Fade in
alert(data.last);
}
}
Далее идет PHP-скрипт, в котором я пробовал отмеченное решение от StackOverflow.
$output = array('first'=>'Steven',
'last'=>'Spielberg',
'address'=>'1234 Unlisted Drive');
echo json_encode($output,JSON_FORCE_OBJECT);
Однако возврат из alert (data.first) не определен, а в других случаях это была двойная кавычка (до того, как я внес изменения). Но я не знаю почему. Я хочу понять и решить. Но я не могу найти проблему, так как кажется, что эта проблема ни у кого, кроме меня.
Заранее спасибо за вашу помощь.
Думаю, это опечатка: dateType
- это не dataType
.
С учетом вышесказанного, что вы имеете в виду, когда «получаете только двойные кавычки»? Строки JSON должен заключаются в двойные кавычки, согласно спецификации, так где вы пытаетесь получить одинарные кавычки? И, сказав это, цитирование внутри объекта JSON не должно иметь значения (тем более, что на стороне PHP вы должны использовать json_decode(string)
для получения реального объекта, а на стороне JS вы должны использовать JSON.parse(string)
для получения реального объекта, поэтому цитируйте символы не должно иметь значения)
@Syscall, вы решили проблему. Это была опечатка! Спасибо чувак.
Если вы действительно хотите узнать, что происходит, не используйте
alert()
; используйтеconsole.info()
и вместо этого посмотрите на консоль разработчика. Вы хотите видеть фактические данные, а не их версию с принуждением к строке. Никогда не используйте предупреждения, если вы действительно пытаетесь выяснить, что происходит в вашем коде. С учетом сказанного, console.info, чтоdata
вместоdata.first
: узнайте, что на самом деле в нем, прежде чем пытаться получить доступ к свойству.first
.