Re: [Proto-Scripty] Re: Ajax.Request fails, while vanilla XHR works fine

2012-04-13 Thread Victor


 It seems to be an issue on their server (BaseHTTP/0.3 Python/2.7.1+ 
 according to FireBug). I'll file a bug and see what happens.

XHR without setRequestHeader sends usual 'GET' request:

Request URL: http://zip.elevenbasetwo.com/?zip=a
Request Method: GET
Status Code: 404 Not Found
*Request Headers*
Accept: */*
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3
Accept-Encoding: gzip,deflate,sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Connection: keep-alive
Host: zip.elevenbasetwo.com
Origin: https://groups.google.com
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.19 (KHTML, like 
Gecko) Chrome/18.0.1025.142 Safari/535.19
*Response Headers*
Access-Control-Allow-Origin: *
Connection: close
Content-Type: text/plain
Date: Fri, 13 Apr 2012 09:16:07 GMT
Server: BaseHTTP/0.3 Python/2.7.1+

XHR with any setRequestHeader sends first 'OPTIONS' request (so-called 
preflighthttps://developer.mozilla.org/En/HTTP_Access_Control#Preflighted_requests
):

Request URL: http://zip.elevenbasetwo.com/?zip=a
Request Method: OPTIONS
Status Code: 501 Not Implemented
*Request Headers*
Accept: */*
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3
Accept-Encoding: gzip,deflate,sdch
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Access-Control-Request-Headers: x-xxx, origin
Access-Control-Request-Method: GET
Connection: keep-alive
Host: zip.elevenbasetwo.com
Origin: https://groups.google.com
User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.19 (KHTML, like 
Gecko) Chrome/18.0.1025.142 Safari/535.19
*Response Headers*
Connection: close
Content-Type: text/html
Date: Fri, 13 Apr 2012 09:20:32 GMT
Server: BaseHTTP/0.3 Python/2.7.1+

It seems that some browsers (like Firefox and WebKit-based) may send CORS 
requests without preflight for text/plain resources when no additional 
headers are set. In other cases they send preflighted 'OPTIONS' request, 
which is not implemented in this 'BaseHTTP/0.3 Python/2.7.1+' server.

-- 
You received this message because you are subscribed to the Google Groups 
Prototype  script.aculo.us group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/prototype-scriptaculous/-/6xIQrvgSIqsJ.
To post to this group, send email to prototype-scriptaculous@googlegroups.com.
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en.



Re: [Proto-Scripty] Re: Ajax.Request fails, while vanilla XHR works fine

2012-04-13 Thread Walter Lee Davis
Thanks very much for the added detail. I filed an issue on the Github project 
for the Python server, and within hours another Githubber had posted a pull 
request fixing the bug. The server was just not aware of what to do if it got 
such an OPTIONS request, so it was falling over.

Walter

On Apr 13, 2012, at 5:26 AM, Victor wrote:

 It seems to be an issue on their server (BaseHTTP/0.3 Python/2.7.1+ according 
 to FireBug). I'll file a bug and see what happens.
 
 XHR without setRequestHeader sends usual 'GET' request:
 
 Request URL: http://zip.elevenbasetwo.com/?zip=a
 Request Method: GET
 Status Code: 404 Not Found
 Request Headers
 Accept: */*
 Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3
 Accept-Encoding: gzip,deflate,sdch
 Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
 Connection: keep-alive
 Host: zip.elevenbasetwo.com
 Origin: https://groups.google.com
 User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.19 (KHTML, like 
 Gecko) Chrome/18.0.1025.142 Safari/535.19
 Response Headers
 Access-Control-Allow-Origin: *
 Connection: close
 Content-Type: text/plain
 Date: Fri, 13 Apr 2012 09:16:07 GMT
 Server: BaseHTTP/0.3 Python/2.7.1+
 
 XHR with any setRequestHeader sends first 'OPTIONS' request (so-called 
 preflight):
 
 Request URL: http://zip.elevenbasetwo.com/?zip=a
 Request Method: OPTIONS
 Status Code: 501 Not Implemented
 Request Headers
 Accept: */*
 Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3
 Accept-Encoding: gzip,deflate,sdch
 Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
 Access-Control-Request-Headers: x-xxx, origin
 Access-Control-Request-Method: GET
 Connection: keep-alive
 Host: zip.elevenbasetwo.com
 Origin: https://groups.google.com
 User-Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.19 (KHTML, like 
 Gecko) Chrome/18.0.1025.142 Safari/535.19
 Response Headers
 Connection: close
 Content-Type: text/html
 Date: Fri, 13 Apr 2012 09:20:32 GMT
 Server: BaseHTTP/0.3 Python/2.7.1+
 
 It seems that some browsers (like Firefox and WebKit-based) may send CORS 
 requests without preflight for text/plain resources when no additional 
 headers are set. In other cases they send preflighted 'OPTIONS' request, 
 which is not implemented in this 'BaseHTTP/0.3 Python/2.7.1+' server.
 
 -- 
 You received this message because you are subscribed to the Google Groups 
 Prototype  script.aculo.us group.
 To view this discussion on the web visit 
 https://groups.google.com/d/msg/prototype-scriptaculous/-/6xIQrvgSIqsJ.
 To post to this group, send email to prototype-scriptaculous@googlegroups.com.
 To unsubscribe from this group, send email to 
 prototype-scriptaculous+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/prototype-scriptaculous?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
Prototype  script.aculo.us group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com.
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en.



[Proto-Scripty] Re: Ajax.Request fails, while vanilla XHR works fine

2012-04-12 Thread Victor


 Same browser (Safari.latest) on the same computer, the Prototype method 
 gives me a security failure (Origin [my host] is not allowed by 
 Access-Control-Allow-Origin.) while the long-hand XHR (inside a Prototype 
 observer) just works without any comment:


 Two differences I can notice:
1. Prototype sets request headers 'X-Requested-With', 
'X-Prototype-Version', 'Accept' with setRequestHeaders() - you don't
2. Prototype calls send with null argument
this.transport.send(null); // Prototype
vs
client.send(); // your raw XHR

If you can test your code with these two changes - will it raise error?

  $('zip').observe('change', function(evt) {
var client = new XMLHttpRequest();
client.open(GET, 
http://zip.elevenbasetwo.com?zip=http://zip.elevenbasetwo.com/?zip= 
+ $F(this), true);
client.onreadystatechange = function() {
  if(client.readyState == 4) {
var data = client.responseText.evalJSON();
$('city').setValue(data.city);
$('state').setValue(data.state);
  };
};
*client.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
client.setRequestHeader('X-Prototype-Version', '1.7');
*
*client.setRequestHeader('Accept', 'text/javascript, text/html, 
application/xml, text/xml, */*');*
client.send(*null*);
  });

-- 
You received this message because you are subscribed to the Google Groups 
Prototype  script.aculo.us group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/prototype-scriptaculous/-/6dUgLVmeJQkJ.
To post to this group, send email to prototype-scriptaculous@googlegroups.com.
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en.



[Proto-Scripty] Re: Ajax.Request fails, while vanilla XHR works fine

2012-04-12 Thread Victor
Is header 'Access-Control-Allow-Origin' present in responses for both 
examples?



-- 
You received this message because you are subscribed to the Google Groups 
Prototype  script.aculo.us group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/prototype-scriptaculous/-/99KTZ-IvHG8J.
To post to this group, send email to prototype-scriptaculous@googlegroups.com.
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en.



Re: [Proto-Scripty] Re: Ajax.Request fails, while vanilla XHR works fine

2012-04-12 Thread Walter Lee Davis

On Apr 12, 2012, at 12:14 PM, Victor wrote:

 Same browser (Safari.latest) on the same computer, the Prototype method gives 
 me a security failure (Origin [my host] is not allowed by 
 Access-Control-Allow-Origin.) while the long-hand XHR (inside a Prototype 
 observer) just works without any comment:
 
 
 Two differences I can notice:
 1. Prototype sets request headers 'X-Requested-With', 'X-Prototype-Version', 
 'Accept' with setRequestHeaders() - you don't
 2. Prototype calls send with null argument
 this.transport.send(null); // Prototype
 vs
 client.send(); // your raw XHR
 
 If you can test your code with these two changes - will it raise error?
 
   $('zip').observe('change', function(evt) {
 var client = new XMLHttpRequest();
 client.open(GET, http://zip.elevenbasetwo.com?zip=; + $F(this), true);
 client.onreadystatechange = function() {
   if(client.readyState == 4) {
 var data = client.responseText.evalJSON();
 $('city').setValue(data.city);
 $('state').setValue(data.state);
   };
 };
 client.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
 client.setRequestHeader('X-Prototype-Version', '1.7');
 client.setRequestHeader('Accept', 'text/javascript, text/html, 
 application/xml, text/xml, */*');
 client.send(null);
   });
 
 

Thanks very much for the suggestion. It looks as though ANY setRequestHeader 
invocation at all is enough to scuttle the request. I tried commenting one, 
then two, then all of them out. Without those three lines, the request works 
fine -- even with the null in the send. But add any one of them back, and the 
request fails. It seems to be an issue on their server (BaseHTTP/0.3 
Python/2.7.1+ according to FireBug). I'll file a bug and see what happens.

Walter

-- 
You received this message because you are subscribed to the Google Groups 
Prototype  script.aculo.us group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com.
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en.



Re: [Proto-Scripty] Re: Ajax.Request fails, while vanilla XHR works fine

2012-04-11 Thread Walter Lee Davis
I understand the SOP, I was wondering why it worked when I violated SOP from a 
hard-coded XHR request. Under the hood, it is my understanding that Prototype 
sets up a very similar XHR request anyway. It doesn't make any sense that the 
one would work while the other did not. This server is specifically kinked to 
allow a request such as this, or else the SOP would cause it to fail no matter 
what. Can anyone point out the flaw in my logic here?

Walter

On Apr 11, 2012, at 9:00 PM, Jason wrote:

 
 Have you tried to just use
 
 new Ajax.Request('index.php', .);
 
 vs the full URL
 
 from the Ajax.Request source code
 
 * - url (String): The URL to fetch. When the _same-origin_ policy is
 in
 * effect (as it is in most cases), `url` **must** be a relative URL or
 an
 * absolute URL that starts with a slash (i.e., it must not begin with
 * `http`).
 
 
 On Apr 10, 7:52 pm, Walter Lee Davis wa...@wdstudio.com wrote:
 Typo, fixed; still fails, same error, before ever reaching this line.
 
 On Apr 10, 2012, at 10:50 PM, Walter Lee Davis wrote:
 
var data = responseText.evalJSON();
 
 s/b var data = transport.responseText.evalJSON();
 
 Walter
 
 -- 
 You received this message because you are subscribed to the Google Groups 
 Prototype  script.aculo.us group.
 To post to this group, send email to prototype-scriptaculous@googlegroups.com.
 To unsubscribe from this group, send email to 
 prototype-scriptaculous+unsubscr...@googlegroups.com.
 For more options, visit this group at 
 http://groups.google.com/group/prototype-scriptaculous?hl=en.
 

-- 
You received this message because you are subscribed to the Google Groups 
Prototype  script.aculo.us group.
To post to this group, send email to prototype-scriptaculous@googlegroups.com.
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en.