Mootools 1.4.5请求'编码'选项不起作用

时间:2014-05-14 21:04:12

标签: javascript ajax character-encoding mootools

我正在尝试在我的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”。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

确实有效。 1个小问题:设置字符集的代码路径位于另一个变量后面 - 需要设置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

它说但是meh:

  
      
  • urlEncoded - (boolean:默认为true)如果设置为true,则content-type标头设置为www-form-urlencoded + encoding
  •   
  • encoding - (字符串:默认为utf-8)要在请求标头中设置的编码。
  •   

当urlEncoded不为真时,后者需要'忽略'