我知道帖子为什么失败,但是我不确定如何解决它,也找不到其他引用。我将参考jEditable使其变得更简单,因为它没有jEditable插件。
那么,如何才能使关键字“转义”以便正确发布呢?以下是相关代码:
测试
<script type="text/javascript">
$(function() {
$('#button').click(function() {
$.ajax({
type : 'POST',
url : 'ajax/post_cms.php',
dataType : 'html',
data : {
id : '1',
data : '<p>This is a test of the system that shows me an alert !</p>'
},
success : function(data) {
console.log(data);
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
console.log('An Ajax error was thrown.');
console.log(XMLHttpRequest);
console.log(textStatus);
console.log(errorThrown);
}
});
});
});
</script>
<input type="button" name="button" value="button" id="button" />
当它出错时,它将抛出“ error:”回调函数,并且“ errorThrown”被记录为未定义。我很肯定这是“ alert”一词,因为如果我在出现的某个地方将其拼写为“ allert”,那么一切都会很好。如果您拿出HTML(因此只是“数据:'这是对系统的测试,向我显示警报!'”),它就可以正常工作。
XMLHttpRequest =“ XMLHttpRequest readyState = 4 status = 0 multipart = false”
textStatus =“错误”
errorThrown =“未定义”
H!救命!!
最佳答案
更新:
问题是防火墙将AJAX请求捕获为XSS攻击。如果遇到与以下所示类似的问题,请确保检查您的环境。
症状:
发布数据失败,错误代码为0
发布数据可在其他地方使用,但不适用于您的环境
只要不包含任何javascript函数,发布数据就可以正常工作
根据文档,您的库似乎不应该出错
您无法在库中找到错误。
我认为除了jQuery以外,还有其他问题。
您最初的示例对我来说效果很好。
在此处查看工作示例:http://jsbin.com/ifami
注意:我不得不将您的ajax URL更改为有效的URL,但除此之外没有其他更改。
话虽如此,您可以尝试将值编码为URI组件:
<script type="text/javascript">
$(function() {
$('#button').click(function() {
$.ajax({
type : 'POST',
url : 'ajax/post_cms.php',
dataType : 'html',
data : {
id : '1',
data : encodeURIComponent('<p>This is a test of the system that shows me an alert !</p>')
},
success : function(data) {
console.log(data);
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
console.log('An Ajax error was thrown.');
console.log(XMLHttpRequest);
console.log(textStatus);
console.log(errorThrown);
}
});
});
});
</script>