|
View:
New views
8 Messages
—
Rating Filter:
Alert me
|
|
|
Post params don't show up on server sideHi,
I currently switched over from prototype to YUI and have some problems using the connection manager. I'm using the POST method with some parameters, but when my async connection is sent, the server side only receives some parameters in the URL, but not the ones that I pass into the 4th argument of asyncRequest. (I'm using Apache ASP on the server). Another related thing I noticed is that the Params tab don't show up for these requests either, and the "Post" tab shows the parameters as a single long string, rather than a key-value column like it did when I was using prototype.js. This was the way when I was looking at the official YUI Post method example as well. Any ideas what I'm doing wrong? James |
|
|
Re: Post params don't show up on server sideOK, seems like the problem is with the "Content-Type" header.
By default, it is "application/x-www-form-urlencoded; charset=UTF-8". When I change it to "application/x-www-form-urlencoded", it works. Does anybody know if this is the right way to do it or why the default value doesn't work?? BTW, this is the code I'm doing to change the header: YAHOO.util.Connect.setDefaultPostHeader(false); YAHOO.util.Connect.initHeader('Content-Type', 'application/x-www-form-urlencoded'); --- In ydn-javascript@..., "jameschao122" <jchao@...> wrote: > > Hi, > > I currently switched over from prototype to YUI and have some problems > using the connection manager. > > I'm using the POST method with some parameters, but when my async > connection is sent, the server side only receives some parameters in > the URL, but not the ones that I pass into the 4th argument of > asyncRequest. (I'm using Apache ASP on the server). > > Another related thing I noticed is that the Params tab don't show up > for these requests either, and the "Post" tab shows the parameters as > a single long string, rather than a key-value column like it did when > I was using prototype.js. This was the way when I was looking at the > official YUI Post method example as well. > > Any ideas what I'm doing wrong? > > James > |
|
|
Re: Post params don't show up on server side--- In ydn-javascript@..., "jameschao122" <jchao@...> wrote:
> > OK, seems like the problem is with the "Content-Type" header. > > By default, it is "application/x-www-form-urlencoded; charset=UTF-8". > > When I change it to "application/x-www-form-urlencoded", it works. > > Does anybody know if this is the right way to do it or why the default > value doesn't work?? > > BTW, this is the code I'm doing to change the header: > > YAHOO.util.Connect.setDefaultPostHeader(false); > YAHOO.util.Connect.initHeader('Content-Type', > 'application/x-www-form-urlencoded'); Interesting. Can you show the actual POST message you're sending as the fourth argument? Regards, Thomas |
|
|
Re: Post params don't show up on server sideMy post parameters look something like this:
"id=1180625935031062&action=get_user_prefs&data=%7B%7D" All of my posts have a parameter for ID, action, and data (sometimes null). And this is exactly what I'm passing in as the fourth parameters. --- In ydn-javascript@..., "tssha" <tsha@...> wrote: > > --- In ydn-javascript@..., "jameschao122" jchao@ wrote: > > > > OK, seems like the problem is with the "Content-Type" header. > > > > By default, it is "application/x-www-form-urlencoded; charset=UTF-8". > > > > When I change it to "application/x-www-form-urlencoded", it works. > > > > Does anybody know if this is the right way to do it or why the default > > value doesn't work?? > > > > BTW, this is the code I'm doing to change the header: > > > > YAHOO.util.Connect.setDefaultPostHeader(false); > > YAHOO.util.Connect.initHeader('Content-Type', > > 'application/x-www-form-urlencoded'); > > Interesting. Can you show the actual POST message you're sending as > the fourth argument? > > Regards, > Thomas > |
|
|
Re: Post params don't show up on server sideAlso, I actually have to do the following to get the connection manager
to send the request with the correct header: YAHOO.util.Connect.resetDefaultHeaders(); YAHOO.util.Connect.setDefaultPostHeader(false); YAHOO.util.Connect.initHeader('Content-Type', 'application/x-www-form-urlencoded', true); --- In ydn-javascript@..., "jameschao122" <jchao@...> wrote: > > My post parameters look something like this: > > "id=1180625935031062&action=get_user_prefs&data=%7B%7D" > > All of my posts have a parameter for ID, action, and data (sometimes > null). And this is exactly what I'm passing in as the fourth parameters. > > --- In ydn-javascript@..., "tssha" tsha@ wrote: > > > > --- In ydn-javascript@..., "jameschao122" jchao@ wrote: > > > > > > OK, seems like the problem is with the "Content-Type" header. > > > > > > By default, it is "application/x-www-form-urlencoded; > charset=UTF-8". > > > > > > When I change it to "application/x-www-form-urlencoded", it works. > > > > > > Does anybody know if this is the right way to do it or why the > default > > > value doesn't work?? > > > > > > BTW, this is the code I'm doing to change the header: > > > > > > YAHOO.util.Connect.setDefaultPostHeader(false); > > > YAHOO.util.Connect.initHeader('Content-Type', > > > 'application/x-www-form-urlencoded'); > > > > Interesting. Can you show the actual POST message you're sending as > > the fourth argument? > > > > Regards, > > Thomas > > > |
|
|
Re: Post params don't show up on server side--- In ydn-javascript@..., "jameschao122" <jchao@...> wrote:
> > My post parameters look something like this: > > "id=1180625935031062&action=get_user_prefs&data=%7B%7D" > > All of my posts have a parameter for ID, action, and data (sometimes > null). And this is exactly what I'm passing in as the fourth parameters. Without modifying any of the headers, I used Connection Manager to send the data you provided as follows: var data = encodeURI( "id=1180625935031062&action=get_user_prefs&data={}" ); var cObj = YAHOO.util.Connect.asyncRequest( 'POST', 'post.php, callback, data); The URI post.php will return the results of $_POST, and callback.success will write the results to a document. The following is the result: Array ( [id] => 1180625935031062 [action] => get_user_prefs [data] => {} ) Can you talk a bit more about how your server entrypoint is configured? Regards, Thomas |
|
|
Re: Post params don't show up on server sideHi Thomas,
I'm using Apache::ASP and it seems like the problem lies with that. According to http://www.nabble.com/Content-type:-application-x-www-form-urlencoded--c\ harset%3Dutf-8-t1834467.html, it seems like Apache::ASP expects the content type to be exactly "application-x-www-form-urlencoded", even though the HTTP specs allow for more than that. So, I'll just have to live with the workaround I've found. It would be nice if there was a better API for changing this though (or am I using the APIs incorrectly?). Honestly, a bit surprised that this Content-Type header things hasn't been a problem for more people though... Anyway, thanks for following up. James --- In ydn-javascript@..., "jameschao122" <jchao@...> wrote: > > Also, I actually have to do the following to get the connection manager > to send the request with the correct header: > > YAHOO.util.Connect.resetDefaultHeaders(); > YAHOO.util.Connect.setDefaultPostHeader(false); > YAHOO.util.Connect.initHeader('Content-Type', > 'application/x-www-form-urlencoded', true); > > > --- In ydn-javascript@..., "jameschao122" jchao@ wrote: > > > > My post parameters look something like this: > > > > "id=1180625935031062&action=get_user_prefs&data=%7B%7D" > > > > All of my posts have a parameter for ID, action, and data (sometimes > > null). And this is exactly what I'm passing in as the fourth > parameters. > > > > --- In ydn-javascript@..., "tssha" tsha@ wrote: > > > > > > --- In ydn-javascript@..., "jameschao122" jchao@ > > > > > > > > OK, seems like the problem is with the "Content-Type" header. > > > > > > > > By default, it is "application/x-www-form-urlencoded; > > charset=UTF-8". > > > > > > > > When I change it to "application/x-www-form-urlencoded", it works. > > > > > > > > Does anybody know if this is the right way to do it or why the > > default > > > > value doesn't work?? > > > > > > > > BTW, this is the code I'm doing to change the header: > > > > > > > > YAHOO.util.Connect.setDefaultPostHeader(false); > > > > YAHOO.util.Connect.initHeader('Content-Type', > > > > 'application/x-www-form-urlencoded'); > > > > > > Interesting. Can you show the actual POST message you're sending > > > the fourth argument? > > > > > > Regards, > > > Thomas > > > > > > |
|
|
Re: Post params don't show up on server side--- In ydn-javascript@..., "jameschao122" <jchao@...> wrote:
> > Hi Thomas, > > I'm using Apache::ASP and it seems like the problem lies with that. > According to > http://www.nabble.com/Content-type:-application-x-www-form-urlencoded--c\ > harset%3Dutf-8-t1834467.html, it seems like Apache::ASP expects the > content type to be exactly "application-x-www-form-urlencoded", even > though the HTTP specs allow for more than that. > > So, I'll just have to live with the workaround I've found. It would be > nice if there was a better API for changing this though (or am I using You have the correct way to turn off the header and setting your own. // If you call resetDefaultHeaders here, // you'll lose the custom header "X-Requested-With:XMLHttpRequest". YAHOO.util.Connect.resetDefaultHeaders(); // The ability to turn the default POST header was to // accommodated those who did not want to use this header // as part of their POST request. YAHOO.util.Connect.setDefaultPostHeader(false); YAHOO.util.Connect.initHeader( 'Content-Type', 'application/x-www-form-urlencoded', true ); And, if you are interested: http://sourceforge.net/tracker/index.php?func=detail&aid=1689122&group_id=165715&atid=836476 Regards, Thomas |
| Free embeddable forum powered by Nabble | Forum Help |