ajax传值问题,怎么写都有问题

ajax传值问题,怎么写都有问题

问题描述:

ajax传值到后台,这样写直接输出data error;
data: "{'s':'" + selectedText + "'}",没办法传带单引号的
data: "{ \"s\":\""+ selectedText+"\" }",没办法传带双引号的

         function ajaxSend() {
            jQuery.blockUI({ message: "处理中,请稍候...<img src='阅读_files/content/images/加载-007.gif' />", css: { color: 'black', border: '3px solid #aaa', backgroundColor: 'white' }, overlayCSS: { opacity: '0.0' } });
            alert("解析过程需要10秒,如有卡顿,请稍等");
            $.ajax({
                type: "Post",
                url: "Reader.aspx/GetStr",
                async: false,
                //data: "{'s':'" + selectedText + "'}",
                data: { s: selectedText },
                //data: "{ \"s\":\""+ selectedText+"\" }",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    $('#Report').html(data.d);
                    jQuery.unblockUI();
                    $('html,body').animate({ scrollTop: document.body.clientHeight + 'px' });//跳转至页面最底部
                },
                error: function (err) {
                    alert("data error");
                    jQuery.unblockUI();
                }
            });
        }

你的selectedText包含单引号或者双引号?替换转义下,要不字符串不闭合了

 data:'{"s":"' + selectedText.replace(/"/g,'\\"') + '"}',

用base64编码处理一下。

urlencode或者base64编码下,总之你的数据中有特殊字符。

字符问题,编码转换解决