ajax发送html标识,如何在jQuery的.ajax函数中正确转义作为数据发送的html

更新

:一旦查看了Firebug中的问题,我立即发现了我的错误。这是我必须以某种方式删除的令人尴尬的双引号。我一直在使用Chrome的开发人员窗口。非常抱歉耗尽您的资源。但是,经验教训!(“我希望。)

对我来说,转义要发送到服务器的html字符的最佳方法是什么?我正在使用jQuery,.ajax()和jsonp。

我正在编写一个书签,该书签将当前页面的html的一部分发送到我的服务器。这是ajax调用:

jQuery.ajax({

url: 'http://www.my_server.com/file.php?callback=?',

dataType: 'jsonp',

data: { someHtml: escape(jQuery(this).html().substring(0,1000)) },

success: function() { // stuff },

beforeSend: function(xhr) {

xhr.setRequestHeader('Content-type','text/html');

},

error: function() { // stuff }

});

我需要使用JSONP,因此不能使用POST,这就是为什么我要截断html数据的原因。如果html是“

nice”,事情就可以了,但是如果它包含javascript不喜欢的字符,那我就有问题了。我通过使用escape()解决了我的问题,但是现在我认为我遇到了换行和制表符问题。

Chrome的开发者控制台给了我同样的错误:

Uncaught SyntaxError: Unexpected token <

我认为这意味着某些字符导致事物脱离javascript。我尝试了以下方法:escape(),encodeURI /

Component(),serialize(),text(),但是还没有任何效果。一开始,我没有使用过beforeSend,但认为应该尝试一下,但没什么区别。

目前,我停留在一些带有换行符,html,制表符和几个空格的html上。我尝试使用replace()替换这些字符:

... .substring(0,1000).replace(/(\r\n|[\r\n])/g,'')

我在另一个站点上找到了此正则表达式字符串,该字符串应替换回车符和换行符的各种组合。

我希望我已经足够清楚地解释了自己。这是我在Stack Overflow上遇到的第一个问题,所以对我轻松一点。:)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值