在ajax调用的url中转义双引号

时间:2014-06-03 19:13:12

标签: javascript jquery ajax

我有一个ajax调用

$.ajax({
    url: 'url&para1=' + JSON.stringify(obj),
    type: 'POST',
    async: true,
    contentType: 'application/json',
    data: {},
    success: function(data){
    },
    error: function(error){

    }
});

在网址中,我为每%22

获取"

如何逃脱?

3 个答案:

答案 0 :(得分:3)

也许这会有所帮助

url: 'url&para1=' + encodeURIComponent(JSON.stringify(obj)),

答案 1 :(得分:1)

%22 双引号的“转义”值。这是在URI中发送数据的可接受方式。你到底遇到了什么问题?

答案 2 :(得分:1)

JSON.stringify将对象转换为字符串。但是,带引号的字符串必须转换为URL编码字符串(请参阅superrafal的答案)。

但是,如果这是一个POST请求,为什么要将URL中的参数作为查询字符串(?key = value)发送,就像GET请求一样? data参数设置为空白对象。如果您希望将URL中的这些值作为GET发送,请将类型更改为GET,删除“data”参数,并使用$ .param(obj)将该对象转换为查询字符串。如果您希望将这些值作为POST发送,请使用以下命令:

$.ajax({
    url: "url_to_file_to_accept_POST_request",
    type: "POST",
    data: obj,
    success: function(data) {

    },
    error: function(error) {

    }
});