我知道帖子为什么失败,但是我不确定如何解决它,也找不到其他引用。我将参考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>

09-25 17:07
查看更多