出现在greasemonkey xmlhttprequest中的空字符

时间:2014-08-03 07:49:38

标签: javascript ajax greasemonkey

我设法获得了一个使用jQuery的AJAX请求,但由于跨域问题,我必须使用内置的GM_xmlhttprequest。每次返回字符串时,都会在字符串中的每个字符之前附加空字符。这是jQuery中的工作请求:

var msg = { domain: "BEGIN", command: 'example'};
$.ajax({
url: 'http://127.0.0.1:2600',
type: 'GET',
contentType: 'application/json',
data: msg,
success: function(data) {
    console.log('inside');
    $('body').html(data);
},
error: function(xhr, error) { 
    console.debug(xhr); console.debug(error);
}    
});

非工作Greasemonkey请求:

var url = "http://127.0.0.1:2600/";
var msg = { domain: "BEGIN", command: 'example'};
msg = url+$.param(msg);
GM_xmlhttpRequest({
    method: "GET",
    url: msg,
    onload: function(response) {
        domains = response.responseText;
        GM_setValue("domainTable", domains);
        alert("data stored");
    }
});

我已尝试使用overideMimeType并将响应类型设置为标题中的文本但我仍然得到相同的奇怪空字符。我不能在这里粘贴字符串,因为它只会忽略空字符,但是javascript的charCodeAt会为偶数索引处的所有字符吐出0。我显然可以删除空字符或每次删除响应中的每个偶数字符,但我希望有一个更优雅的解决方案。我假设它的要求有问题,但我不能为我的生活找出什么。服务器响应的响应完全相同,但客户端对它的解释却不同。

0 个答案:

没有答案