Обнаружена недопустимая конструкция CFML при использовании cf.query и cf.http


person Vikas    schedule 29.08.2011    source источник


Ответы (3)


Как упомянул Питер, код, который вы предоставили, представляет собой мешанину из некоторого образца кода ACTIONSCRIPT, смешанного с CFML. Это никогда не сработает.

Страница, на которую вы указываете в документах, посвящена написанию ActionScript на стороне сервера. Если это действительно то, что вы пытаетесь сделать (я подозреваю, что нет), вам нужно следовать остальным документам, начиная отсюда http://help.adobe.com/en_US/ColdFusion/9.0./Developing/WSc3ff6d0ea77859461172e0811cbec22c24-5df0.html.

Если вы просто пытаетесь научиться использовать Http.cfc и Query.cfc, вам следует просмотреть соответствующую часть документации: http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSe9cbe5cf462523a0693d5dae123bcd28f6d-8000html

Но что бы вы ни делали, вы не можете вот так смешивать ActionScript и CFML в одном файле.

person Adam Cameron    schedule 29.08.2011

Ознакомьтесь с документацией по ColdFusion: http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSe9cbe5cf462523a0693d5dae123bcd28f6d-7ff8.html и этот сообщение в блоге< /а>.

Здесь нет префикса CF, это объект с состоянием, созданный с использованием ключевого слова new, и в конструкторе нет синтаксиса структурного литерала — просто передайте пары «имя-значение».

<cfscript>
httpService = new http(url="http://www.google.com", method="get");
result = httpService.send().getPrefix();
writeDump(result);
</cfscript>
person orangepips    schedule 29.08.2011
comment
Предоставленная ссылка не отправила меня на определенную страницу в livedocs. - person Dan Short; 29.08.2011
comment
CF.stuff — это ActionScript, а не CFML. Эта ссылка должна вести прямо на соответствующую страницу: livedocs.adobe.com/coldfusion/8/ SSActionScript_14.html (Adobe LiveDocs действительно отстой!) - person Peter Boughton; 29.08.2011
comment
@Vikas: по вашей ссылке разверните узел Script Functions Implemented as CFCs и нажмите http под ним. - person orangepips; 29.08.2011
comment
@orangepips: ваш ответ абсолютно правильный, но мне не нужно решение. Но я хочу знать, почему CF.http не работает, как вы сказали, если это объект с полным состоянием, то как его создать? почему это не объяснено в документах? - person Vikas; 29.08.2011
comment
В cf.http тоже можно поставить CGI, это правда? мы также можем установить его в теге <cfhttp />? - person Vikas; 29.08.2011
comment
@Vikas: CF не работает, потому что ColdFusion не называет космические объекты. Вы создаете его, используя ключевое слово new, как показано в примере выше. Вы можете передавать переменные CGI, используя http или <cfhttp/> в качестве параметров, см. этот пост в блоге: bennadel.com/blog/ - person orangepips; 29.08.2011

Re: "Недопустимая конструкция CFML". Стоит отметить, это:

http({method:"get", url:"http://google.com" });

должно было быть так:

http(method:"get", url:"http://google.com");

или это

http(argumentCollection={method="get", url="http://google.com"});

Вы можете определить структуры, используя {key:"value"}, {key="value"} и {"key"="value"}.

(Если вы заключите ключ в кавычки, он будет чувствителен к регистру при сбросе или сериализации)

Вы можете вызывать методы, используя function("value"), function(key:"value"), function(key="value") и function(key1={key2="value2"})

Если вы хотите вложить структуры, вы должны использовать стиль {key="value"} или {"key"="value"}. например. {"key1"={key2="value2"}}

Вы даже можете смешивать массивы и структуры. {key1={"key2"=["a","b","c"]}}

Сообщение в блоге Бена Наделя подводит итог.

http://www.bennadel.com/blog/1993-Using-Dynamic-Keys-In-ColdFusion-9-s-Implicit-Struct-Creation.htm

person Mike Causer    schedule 20.11.2011