首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON.stringify() -转义问题

JSON.stringify() -转义问题
EN

Stack Overflow用户
提问于 2013-11-05 02:33:52
回答 1查看 1.9K关注 0票数 1

我目前正在使用AJAX和JQuery将json发送到一个应用程序接口服务器。但是,当我使用JSON.stringify()时,服务器可以转义JSON字符串,但是在另一台服务器上,当我使用完全相同的代码时,它可以正常工作,这似乎有问题。

下面是我使用stringify的Javascript对象的一个例子:

代码语言:javascript
复制
{"jsonrpc":"2.0","method":"get_contacts","params":["4345ert343t34t34t4e564",
{"campaigns":["AI5D"]}],"id":1} 

我是从这里的例子开始工作的https://github.com/GetResponse/DevZone/blob/master/API/examples/javascript_synopsis.html

在一台服务器上,双引号使用反斜杠进行转义,这导致API服务器响应一个解析错误,因为这显然是不正确的。在另一台服务器上不存在转义,并且API工作正常。在两台服务器上使用完全相同的代码。

有人知道这是什么原因吗?会不会是编码问题?需要注意的是,在一台服务器上,我必须通过所见即所得编辑器输入JavaScript,但页面加载时JavaScript似乎显示正确。

如果任何人有任何想法,那将是伟大的,因为我花了很长时间试图弄清楚这一点。

编辑:

下面是我使用的JS代码:

代码语言:javascript
复制
var api_key = '4345ert343t34t34t4e564';
var api_url = 'http://api2.getresponse.com';            
var CAMPAIGN_ID = 'AI5D';

var data = JSON.stringify({
"jsonrpc"   : "2.0",
"method"    : "get_contacts",
"params"    : [
        api_key,
        {
            "campaigns" : ["AI5D"] 
        }
    ],
"id"        : 1
});

console.log(data);

jQuery.ajax({
    url         : api_url,
    data        : data,
    type        : "POST",
    contentType : "application/json",
    dataType    : "json",
    crossDomain : true,
    async       : true,
    success     : function(response) 
    {                        
        alert(JSON.stringify(response));
        console.log(JSON.stringify(response));
    }
EN

回答 1

Stack Overflow用户

发布于 2013-11-05 07:04:54

我已经找到了这个问题的解决方案!

似乎头文件中的旧版本Mootools (v.1.2.4)导致了与JSON.stringify()的冲突。删除旧的Mootools库解决了这个问题。

显然,Mootools v1.2.4试图用它自己的修改覆盖JSON.stringify(),这些修改是不正确的,从而导致了反斜杠转义的问题。这个问题是在这里找到的http://outsourceror.blogspot.co.uk/2011/04/mootools-intrudes-on-native-json-and.html

将Mootools更新到最新版本也应该修复此http://mootools.net/download

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19774626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档