Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

I am having problems with cfajaxproxy/railo

Posted on 2013-05-24
6
Medium Priority
?
613 Views
Last Modified: 2013-08-20
I am having problems with using cfajaxproxy with railo, where by calling some of my remote functions will result in a JSONParse error being thrown in the browser. I have managed to identify which functions execute successfully and which fail and it appears to be due to the types of the parameters. Simple types such as strings and booleans work fine, i.e:

<CFFUNCTION name="activate" access="remote" output="no">
      <CFARGUMENT name="webpageId" type="string" required="yes">
      <CFARGUMENT name="isActive" type="boolean" required="yes">


However, any function which requests a struct or array as a parameter, i.e:

<CFFUNCTION name="activate" access="remote" output="no">
      <CFARGUMENT name="webpageId" type="struct" required="yes">


will result in the JSONParse error described. The same function works perfectly using CF9, but when run in the railo environment it throws that error. Does any one have any ideas as to what might be causing this? .. or suggest anything to try?

Many thanks!
0
Comment
Question by:paddycobbett
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
6 Comments
 
LVL 52

Expert Comment

by:_agx_
ID: 39202253
We'd need to see more code. Can you post a small demo example that produces the error?

What version of Railo?
0
 
LVL 1

Author Comment

by:paddycobbett
ID: 39204143
Sure, the following code runs successfully in a CF environment, yet fails in the Railo environment.  Do you have any idea why this could be?  Is is related to an environment setup issue? Could you try this is your railo environment (assuming you have one set up) and see if it works? That would eliminate it being a code issue. Am running railo 4.0.4.001


<html>
<body>
<cfajaxproxy cfc="testcfc" jsclassname="testcfc" />
<script>

 var proxy=new testcfc();
 proxy.setCallbackHandler(function(response){
  alert('string test succeeded!');
 });
 proxy.testWithString('teststring'); // succeeds
 
 proxy=new testcfc();
 proxy.setCallbackHandler(function(response){
  alert('struct test succeeded!');
 });
 proxy.testWithStruct({ struct: 'structval' }); // fails
</script>

</body>
</html>


### test.cfc

<CFCOMPONENT>

 <CFFUNCTION name="testWithString" access="remote" returnFormat="json" output="no">
  <CFARGUMENT name="stringParam" type="string" required="yes">
 
 </CFFUNCTION>
 
 <CFFUNCTION name="testWithStruct" access="remote" returnFormat="json" output="no">
  <CFARGUMENT name="structParam" type="struct" required="yes">
 
 </CFFUNCTION>

</CFCOMPONENT>
0
 
LVL 52

Accepted Solution

by:
_agx_ earned 2000 total points
ID: 39206579
Interesting.  The FF debugger shows it's using the structure param as the "argumentCollection".  So what's actually passed to the function is a parameter named "struct" with a value of "structval" .  

http://localhost/testcfc.cfc?method=testWithStruct&returnFormat=json&argumentCollection={%22struct%22:%22structval%22}


For it to work, I think you need to do something like this instead:

       proxy.testWithStruct( {structParam:   { struct: 'structval' }  });
0
Stack Overflow Podcast - Developer Story

Welcome to the Stack Overflow podcast recorded Thursday July 20 at Stack Overflow Headquearters in NYC. Your hosts today are podcast regulars Jay Hanlon, David Fullerton, and Ilana Yitzhaki, plus the quite irregular Matt Sherman (Stack Overflow Engineering Manager extraordinaire)

 
LVL 1

Author Closing Comment

by:paddycobbett
ID: 39209509
Worked like a charm! thanks and good insight!
0
 
LVL 52

Expert Comment

by:_agx_
ID: 39209676
You're welcome (..and I learned something new too !)
0
 
LVL 1

Author Comment

by:paddycobbett
ID: 39425909
Hi, I know this is an old question but had a quick follow up which is not easily posed as a separate question. Since railo handles the ajax parameters differently, is there an obvious way in which I can call the ajax function that is compatible for both railo and non-railo? Just wanted to check before I adjust my calls for railo which will break if it's not run in the railo environment. I wish I could award follow up points :(
0

Featured Post

On Demand Webinar: Networking for the Cloud Era

Did you know SD-WANs can improve network connectivity? Check out this webinar to learn how an SD-WAN simplified, one-click tool can help you migrate and manage data in the cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

PROBLEM: How to add your own buttons to the bottom toolbar with paging info ( result count ). While creating a cfgrid, I ran into an issue where I wanted to embed my own custom buttons where the default ones ( insert / delete / etc… ) are for aes…
Hi, Even though I have created this Tutorial on My personal Blog, Some people might not able to find my website, So here i am posting it again Today, from the topic it is very clear that i will be showing you here the very basic usage of how we …
In this video you will find out how to export Office 365 mailboxes using the built in eDiscovery tool. Bear in mind that although this method might be useful in some cases, using PST files as Office 365 backup is troublesome in a long run (more on t…
We’ve all felt that sense of false security before—locking down external access to a database or component and feeling like we’ve done all we need to do to secure company data. But that feeling is fleeting. Attacks these days can happen in many w…

715 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question