Отправить JSON из PHP-обработки на общедоступную страницу Coldfusion - PullRequest
0 голосов
/ 11 ноября 2011

Я модифицирую существующее веб-приложение coldfusion.Я добавляю страницы обработки php для выполнения различных задач.До этого момента я только что вызывал php-страницы и взаимодействовал с веб-приложением, передавая переменные через URL.

Текущее использование:

public.cfm calls processing.php?id=69

Тогда обработка будет делать то, что она делаетимеет, то, в конечном итоге:

header("Location: $publichome?id=$id&importantstuff=$stuff");
exit();

И веб-приложение будет забрать, где он тоже.Но теперь один из моих сценариев должен отправить объект JSON обратно вместо простых переменных.Я не знаю, как это сделать.Я попытался сделать пост с помощью cURL, но это не сработало, потому что мне нужна открытая страница Coldfusion, чтобы перейти и curl возвращается к сценарию php (я знаю, что могу отобразить тело результата curl, но это удерживает меня на phpСценарий домена, который я не хочу).Есть ли способ сделать вышеуказанное расположение заголовка и отправить объект, потому что это то, что мне нужно - скрипт php для остановки и страница Coldfusion, которая будет обслуживаться с объектом для работы.

Нужно ли мнесоздать какой-то JSON-сервис в php, который на странице Coldfusion будет вызывать получение результата?Я также могу изменить страницу Coldfusion так, как я захочу.

1 Ответ

0 голосов
/ 12 ноября 2011

Вы должны иметь возможность передавать строку json как переменную URL, так же, как вы передаете более простые строки через заголовок местоположения.Вам понадобятся некоторые средства json-сериализации объекта в php, если вы еще этого не сделали.Вероятно, для этого есть библиотека json.

edit Основываясь на дополнительной информации, теперь у меня есть лучшее предложение:

Из CF сделайте запрос к вашему PHP-коду, передавая любые параметры, необходимые PHP в качестве аргументов в cfhttp.Из PHP просто «выведите» JSON в качестве тела ответа.После того, как вызов CFHTTP вернется к CF, вы получите доступ к JSON через переменную cfhttp.fileContent, которую затем можно запустить через DeserializeJSON, чтобы получить реальный объект.Вот пример кода CF:

<cfhttp url="processing.php?id=69" method="get"></cfhttp>
<cfset importantStuff=DeserializeJSON(cfhttp.fileContent)>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...