我试图在我的ajax请求标头上强制使用'ISO-8859-1'字符集,但由于某种原因,我无法将其从“ UTF-8”更改。我有以下...
var request = new Request({
url: url,
method: 'post',
data: params,
encoding: 'ISO-8859-1',
onSuccess: function(textResponse, xmlResponse) {
//success func
},
onFailure: function(xhr) {
//fail func
}
}).send();
即使配置了该设置,我的请求标头的内容类型在Chrome的开发人员工具中仍显示为“ application / x-www-form-urlencoded; charset = UTF-8”。
有任何想法吗?
最佳答案
确实有效。一个小问题:设置字符集的代码路径在另一个变量后面-需要设置urlEncoded: true
。
见https://github.com/mootools/mootools-core/blob/master/Source/Request/Request.js#L175-L178
和一个jsfiddle进行演示:http://jsfiddle.net/dimitar/3qazx/
new Request({
url: '/echo/html/',
data: {
html: '<p>Text echoed back to request</p>',
delay: 0
},
method: 'post',
urlEncoded: true,
encoding: 'ISO-8859-1',
onComplete: function(){
$('target').set('html', this.response.text);
}
}).send();
我认为文档尚不清楚两者之间的关系-http://mootools.net/docs/core/Request/Request#Request
它说了,但是嗯:
urlEncoded
-(boolean
:默认为true)如果设置为true,则content-type
标头设置为www-form-urlencoded
+ encoding
encoding
-(字符串:默认为utf-8
)要在请求标头中设置的编码。后者需要“当urlEncoded为true时忽略”