在Jquery Ajax调用中发送带有双引号或单引号的参数

Sending parameters in Jquery Ajax call with quotes, double or single

本文关键字:单引号 参数 Ajax Jquery 调用      更新时间:2023-09-26

如果用户在文本区域中添加引号,则无法通过ajax调用发送数据。有没有一种方法发送文本与引号?我不想去掉引号。我想这通常不是什么大问题,我在网上很少发现这种情况。

var description = $('#Description').val();
var title = $('#Title').val();
var parameters = '{content:' + $('#ContentCheck').is(':checked') +
                        ',title: "' + title + '",desciption:"' + description + '"}';

Checkout JSON.stringify(object) .

关键是,您创建一个javascript对象,并调用stringify来创建一个JSON字符串。根据上面给出的信息,你可以这样做:

var jsonText = JSON.stringify({
    'content': $('$('#ContentCheck').is(':checked'),
    'title':   title,
    'description': description
});

这里我们使用花括号定义了一个javascript散列,然后将它传递给stringify。

我也有同样的问题。我试了一下,完全工作了

 xmlhttp.open("POST","test_test.php",true);
    xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xmlhttp.send("name="+encodeURIComponent(name)+"&details="+encodeURIComponent(details)+"&r_price="+r_price+"&o_price="+o_price+"&id="+id);
当插入。
时使用urldecode($_REQUEST['details']) '

可以将参数转换为映射(基本上是一个关联数组),而不是字符串。这样,你就可以在后端。net中进行字符串操作,而无需对前端js进行任何更改;例如

var url = 'http://path/to/your/backend/script';
var parameters = {
    contentCheck: $('#ContentCheck').is(':checked'),
    title: title,
    description: description
};
$.post(url, parameters);

您可以使用js编码引号并在服务器端解码以获得原始字符串

//js

function totalEncode(s){
str= s.replace(/'&/g,'&');
str= str.replace(/</g,'&lt;');
str= str.replace(/>/g,'&gt;');
str= str.replace(/'"/g,'&quot;');
str= str.replace(/''/g,'&#039;');
return(str);
}