1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Update prototype.js to [5985], fixes content-type issue with simulated HTTP methods

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5988 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
Thomas Fuchs 2007-01-18 20:29:02 +00:00
parent fcd73821c2
commit 94e36ef363
2 changed files with 18 additions and 16 deletions

View file

@ -833,25 +833,26 @@ Ajax.Request.prototype = Object.extend(new Ajax.Base(), {
request: function(url) {
this.url = url;
var params = this.options.parameters, method = this.options.method;
this.method = this.options.method;
var params = this.options.parameters;
if (!['get', 'post'].include(method)) {
if (!['get', 'post'].include(this.method)) {
// simulate other verbs over post
params['_method'] = method;
method = 'post';
params['_method'] = this.method;
this.method = 'post';
}
params = Hash.toQueryString(params);
if (params && /Konqueror|Safari|KHTML/.test(navigator.userAgent)) params += '&_='
// when GET, append parameters to URL
if (method == 'get' && params)
if (this.method == 'get' && params)
this.url += (this.url.indexOf('?') > -1 ? '&' : '?') + params;
try {
Ajax.Responders.dispatch('onCreate', this, this.transport);
this.transport.open(method.toUpperCase(), this.url,
this.transport.open(this.method.toUpperCase(), this.url,
this.options.asynchronous);
if (this.options.asynchronous)
@ -860,7 +861,7 @@ Ajax.Request.prototype = Object.extend(new Ajax.Base(), {
this.transport.onreadystatechange = this.onStateChange.bind(this);
this.setRequestHeaders();
var body = method == 'post' ? (this.options.postBody || params) : null;
var body = this.method == 'post' ? (this.options.postBody || params) : null;
this.transport.send(body);
@ -887,7 +888,7 @@ Ajax.Request.prototype = Object.extend(new Ajax.Base(), {
'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
};
if (this.options.method == 'post') {
if (this.method == 'post') {
headers['Content-type'] = this.options.contentType +
(this.options.encoding ? '; charset=' + this.options.encoding : '');

View file

@ -833,25 +833,26 @@ Ajax.Request.prototype = Object.extend(new Ajax.Base(), {
request: function(url) {
this.url = url;
var params = this.options.parameters, method = this.options.method;
this.method = this.options.method;
var params = this.options.parameters;
if (!['get', 'post'].include(method)) {
if (!['get', 'post'].include(this.method)) {
// simulate other verbs over post
params['_method'] = method;
method = 'post';
params['_method'] = this.method;
this.method = 'post';
}
params = Hash.toQueryString(params);
if (params && /Konqueror|Safari|KHTML/.test(navigator.userAgent)) params += '&_='
// when GET, append parameters to URL
if (method == 'get' && params)
if (this.method == 'get' && params)
this.url += (this.url.indexOf('?') > -1 ? '&' : '?') + params;
try {
Ajax.Responders.dispatch('onCreate', this, this.transport);
this.transport.open(method.toUpperCase(), this.url,
this.transport.open(this.method.toUpperCase(), this.url,
this.options.asynchronous);
if (this.options.asynchronous)
@ -860,7 +861,7 @@ Ajax.Request.prototype = Object.extend(new Ajax.Base(), {
this.transport.onreadystatechange = this.onStateChange.bind(this);
this.setRequestHeaders();
var body = method == 'post' ? (this.options.postBody || params) : null;
var body = this.method == 'post' ? (this.options.postBody || params) : null;
this.transport.send(body);
@ -887,7 +888,7 @@ Ajax.Request.prototype = Object.extend(new Ajax.Base(), {
'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
};
if (this.options.method == 'post') {
if (this.method == 'post') {
headers['Content-type'] = this.options.contentType +
(this.options.encoding ? '; charset=' + this.options.encoding : '');