[OpenLayers-Users] OpenLayers.Request problem; where is the data?

Lehtonen, Mika mika at digikartta.net
Mon Nov 3 16:55:32 EST 2008


Ok,

I'll get back to this when I have time. Thanks a lot.
BTW: This is what OL API doc says about 'data': {Object} Any data to 
send with the request. 
http://dev.openlayers.org/releases/OpenLayers-2.7/doc/apidocs/files/OpenLayers/Request-js.html 
Maybe I took that too literally. ;-)

- mika -

Tim Schaub kirjoitti:
> Hey-
>
> Tim Schaub wrote:
>   
>> Hey-
>>
>> Lehtonen, Mika wrote:
>>     
>>> Hi again,
>>> using $_REQUEST (with your snippet), I get this. What's that?
>>>
>>> array(2) {
>>>  ["__utma"]=>
>>>  string(54) "81555458.1737773788.1225666548.1225666548.1225666548.1"
>>>  ["__utmz"]=>
>>>  string(69) 
>>> "81555458.1225666548.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)"
>>> }
>>>       
>> Those are cookie values.
>>
>> We (or I at least) can only help you out if you post code (preferably 
>> legible).
>>
>> Thanks,
>> Tim
>>
>>     
>>> - mika -
>>>
>>> Lehtonen, Mika kirjoitti:
>>>       
>>>> Hi Tim,
>>>>
>>>> tested that. I get this: array(0) { }
>>>>
>>>>         
>
> If you really are doing exactly what I put below (creating a simple 
> my.pyp thingy and POSTing using that exact syntax), then you could be 
> having a character encoding issue.
>
> I don't know enough about PHP to know what they expect or handle - or 
> how your installation is configured or what character set your browser 
> may be using, but you might have to specify your charset in the 
> Content-Type header:
>
>        var req = OpenLayers.Request.POST({
>            url: "my.php",
>            data: OpenLayers.Util.getParameterString({foo: "bar"}),
>            headers: {
>                "Content-Type":
> 	      "application/x-www-form-urlencoded; charset=utf-8"
>            }
>        });
>
> If you are still having trouble, you'll probably want to spend some time 
> with curl, RestTest (FF2 only), LiveHTTPHeaders, and/or other tools to 
> examine exactly what is going on.
>
> Also, in your first post (to this list), you were using an object as the 
> data value.  This needs to be a form-encoded string.  Note that I am 
> using the OpenLayers.Util.getParameterString function above to get a 
> form-encoded string from an object.
>
> Tim
>
>   
>>>> I am trying to create a SLD on server side for Geoserver, based on 
>>>> what has been selected on client side. So I have quite a huge number 
>>>> (couple of thousands) of polygon regions of which an end user can 
>>>> choose from (with a "tool"). Chosen polygons should be presented with 
>>>> different style. So I decided to do that using wms. Unfortunately, if 
>>>> I create my SLD on client side and send it server by using GET, the 
>>>> request is way too long.
>>>>
>>>> Basically, an array of certain selected polygon attributes POSTED to 
>>>> server, would be enough.
>>>>
>>>> - mika -
>>>>
>>>> Tim Schaub kirjoitti:
>>>>  
>>>>         
>>>>> Hey-
>>>>>
>>>>> Can you write (preferably not all on one line) what you are doing 
>>>>> again to make the request?  If you are setting the content type, 
>>>>> include that.   Also, note that you can use the POST function and 
>>>>> that you don't need the new keyword.  In addition, note that params 
>>>>> are about GET and data is about POST.
>>>>>
>>>>> I just set up PHP here and confirmed that the following works:
>>>>>
>>>>>      var req = OpenLayers.Request.POST({
>>>>>          url: "my.php",
>>>>>          data: OpenLayers.Util.getParameterString({foo: "bar"}),
>>>>>          headers: {
>>>>>              "Content-Type": "application/x-www-form-urlencoded"
>>>>>          }
>>>>>      })
>>>>>
>>>>>
>>>>> The content of my.php:
>>>>>
>>>>>      <?php var_dump($_POST); ?>
>>>>>
>>>>>
>>>>> What I see in the response:
>>>>>
>>>>>      array(1) {
>>>>>        ["foo"]=>
>>>>>        string(3) "bar"
>>>>>      }
>>>>>
>>>>>
>>>>> The same answer is given here:
>>>>> http://openlayers.org/pipermail/users/2008-October/008483.html
>>>>>
>>>>> I've put this example up on the Request wiki page:
>>>>> http://trac.openlayers.org/wiki/Request#Ex.7:IssueaPOSTrequestwithform-encodeddata. 
>>>>>
>>>>>
>>>>> And, this is now a FAQ:
>>>>> http://faq.openlayers.org/ajax/how-do-i-post-form-encoded-data/
>>>>>
>>>>> Good luck,
>>>>> Tim
>>>>>
>>>>> Lehtonen, Mika wrote:
>>>>>      
>>>>>           
>>>>>> Actually I already tested that. Also setting the Content-length and 
>>>>>> the Connection Close. I haven't been testing this with other 
>>>>>> browsers than FireFox. It seems that the POST method isn't 
>>>>>> responding in any way. Parameters attached to the request however 
>>>>>> seem to be working just fine.
>>>>>>
>>>>>> There was another issue, which might be the same you pointed to me, 
>>>>>> but the symtons are closer to mine:
>>>>>>
>>>>>> http://n2.nabble.com/OpenLayers.Request.POST-GET-errors-td1304742.html
>>>>>>
>>>>>> - mika -
>>>>>>
>>>>>>
>>>>>> Arnd Wippermann kirjoitti:
>>>>>>          
>>>>>>             
>>>>>>> Perhaps this solves the problem
>>>>>>>
>>>>>>> headers: {
>>>>>>>         "Content-Type": "application/x-www-form-urlencoded"}
>>>>>>>
>>>>>>> http://n2.nabble.com/OpenLayers.Request-POST-and-IE-6-7-issues-tt1384863.htm 
>>>>>>>
>>>>>>> l#a1395114
>>>>>>>  
>>>>>>>
>>>>>>> Arnd Wippermann
>>>>>>>
>>>>>>>
>>>>>>> -----Ursprüngliche Nachricht-----
>>>>>>> Von: users-bounces at openlayers.org 
>>>>>>> [mailto:users-bounces at openlayers.org] Im
>>>>>>> Auftrag von Lehtonen, Mika
>>>>>>> Gesendet: Montag, 3. November 2008 10:01
>>>>>>> An: OpenLayers
>>>>>>> Betreff: [OpenLayers-Users] OpenLayers.Request problem; where is 
>>>>>>> the data?
>>>>>>>
>>>>>>> Hi,
>>>>>>> I am trying to send a POST request from OL with the following snippet:
>>>>>>>
>>>>>>> new OpenLayers.Request.issue({method: 'POST', url:'sld.php',
>>>>>>> params:{abc:'def', cba:'fed'}, data:{ghi: 'jkl', ihg: 'lkj'},
>>>>>>> success: function(){alert('Succeeded!');}, failure: 
>>>>>>> function(){alert('Did not succeed.');}, callback: 
>>>>>>> function(){alert('Calling back');}});
>>>>>>>
>>>>>>> $_POST array in sld.php stays empty. In $_GET array I can find the
>>>>>>> params: def and fed. How can I get touch with the data? Am I doing 
>>>>>>> something
>>>>>>> wrong here?
>>>>>>>
>>>>>>> - mika -
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Users mailing list
>>>>>>> Users at openlayers.org
>>>>>>> http://openlayers.org/mailman/listinfo/users
>>>>>>>
>>>>>>>                 
>>>>>>>               
>>>>>> _______________________________________________
>>>>>> Users mailing list
>>>>>> Users at openlayers.org
>>>>>> http://openlayers.org/mailman/listinfo/users
>>>>>>           
>>>>>>             
>>>>>       
>>>>>           
>>>> _______________________________________________
>>>> Users mailing list
>>>> Users at openlayers.org
>>>> http://openlayers.org/mailman/listinfo/users
>>>>   
>>>>         
>>     
>
>
>   




More information about the Users mailing list