ajax傳遞的引數值包含單引號

changuncle發表於2017-08-17

拼寫json字串的時候,如果引數值含有單引號,首先要把單引號轉換為兩個單引號,其次不要把引數值放到”中間,而是把引數值放到\”\”中間,這樣就能解決由於引數含有單引號而無法傳遞到後臺的問題了。

var driverName = $("#txtDriverName").val().replace("'", "''");
var phone = $("#txtPhone").val().replace("'", "''");
var carNo = $("#txtCarNo").val().replace("'", "''");
$.ajax({
    type: "Post",
    url: "DriverLocationMap.aspx/GetDataBind",
    async: false,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    data: "{routeId:'"+ routeId + "',currentCity:'" + currentCity + "',driverName:\"" + driverName + "\",phone:\"" + phone + "\",carNo:\"" + carNo + "\"}",
    success: function(data) {
        jsonStr=JSON.parse(data.d);
    }
});

json字串簡化過程如下:
1、最標準的json字串

data: "{ \"userId\": \"2016007\", \"userName\": \"零零七\", \"gender\": \"\" }"

2、把\”換成’

data: "{ 'userId': '2016007', 'userName': '零零七', 'gender': '男' }"

3、去掉key兩端的’

data: "{ userId: '2016007', userName: '零零七', gender: '男' }"

4、去掉value兩端的’,如果value的型別是int、float或bool型別那不加單引號也可以,如果value是字串型別那必須加單引號

data:"{userId:2016007,userName:'零零七',gender:'男'}"

相關文章