Thanks guys!

I read that Mozilla link, and it seems you just need to tell the server to
respond that the origin URL is allowed to send requests to the server. I
asked Janko how to do that and the following line was enough:

response addHeaderName: 'Access-Control-Allow-Origin' value: '
http://localhost:4000/'.

Now Amber can send data to Pharo and receive a valid response.

Cheers,

2011/9/23 Richard Durr <[email protected]>

> Likely the problem, see:
> http://meteatamel.wordpress.com/2011/02/11/access-control-allow-origin/
> and from there on: https://developer.mozilla.org/En/HTTP_Access_Control
>
>
> On Fri, Sep 23, 2011 at 11:40 PM, Richard Durr <
> [email protected]> wrote:
>
>> Maybe the Access-Control-Allow-Origin blocks because of the different
>> ports?
>>
>> On Fri, Sep 23, 2011 at 5:56 PM, Bernat Romagosa <
>> [email protected]> wrote:
>>
>>> Ok, so I've just learnt I should be doing:
>>>
>>> answerTo: aRequest
>>> | response |
>>> aRequest postDataKeys do: [:eachKey | Transcript show: (aRequest
>>> postDataAt: eachKey) value].
>>>  response := HTTPResponse ok.
>>> ^response
>>>
>>> But then the client's javascript console shows: "XMLHttpRequest cannot
>>> load http://localhost:4001/amber/. Origin 
>>> http://localhost:4000<http://localhost/>is not allowed by 
>>> Access-Control-Allow-Origin.
>>> "
>>>
>>> Ideas?
>>>
>>> 2011/9/23 Bernat Romagosa <[email protected]>
>>>
>>>> Hi lists,
>>>>
>>>> I'm trying to get Amber and Pharo to talk to each other by using Ajax.
>>>> So far, using an Ajax wrapper that Laurent wrote, I managed to get Pharo to
>>>> receive a message from Amber by doing:
>>>>
>>>> |ajax|
>>>> ajax := (Ajax url: 'http://localhost:4001/amber/').
>>>>  ajax options
>>>> at: 'type' put: 'POST';
>>>> at: 'data' put: 'Hi Pharo!';
>>>>  at: 'timeout' put: 500.
>>>> ajax onSuccessDo: [console log: 'ok!'];
>>>>  onErrorDo: [console log: 'not so ok...'].
>>>> ajax send
>>>>
>>>> This is captured by a Swazoo resource, that does the following:
>>>>
>>>> answerTo: aRequest
>>>> | response |
>>>> [aRequest postData stream anyDataReady]
>>>>  whileTrue:
>>>>   [Transcript show: aRequest postData stream next].
>>>>
>>>> response := HTTPResponse ok.
>>>> response
>>>> contentType: 'text/plain';
>>>>  entity: 'Done!'.
>>>> ^response
>>>>
>>>> My intention here is just to read the message data and return an OK
>>>> response, but for some reason stream anyDataReady keeps evaluating to true
>>>> even when there's no more data to read, so the code underneath is never
>>>> executed. The Transcript shows 'Hi Pharo!' though, so I'm sure the request
>>>> is being received and read.
>>>>
>>>> Any light shed on this would be of great help...
>>>>
>>>> Thanks!
>>>>
>>>> --
>>>> Bernat Romagosa.
>>>>
>>>
>>>
>>>
>>> --
>>> Bernat Romagosa.
>>>
>>
>>
>


-- 
Bernat Romagosa.

Reply via email to