Javascript 为什么$\u POST要从字符串中删除HTML标记?

Javascript 为什么$\u POST要从字符串中删除HTML标记?,javascript,php,jquery,ajax,fat-free-framework,Javascript,Php,Jquery,Ajax,Fat Free Framework,我使用的是PHP5.6,使用的是无脂肪框架(如果有必要的话),但遇到了一个奇怪的问题。我正在向服务器发送表单数据,如下所示: function submitForm(form) { var fd = new FormData(); var file_data = isImageIncluded ? $('input[type="file"]')[0].files : []; for (var i = 0; i < file_data.length; i++) {

我使用的是PHP5.6,使用的是无脂肪框架(如果有必要的话),但遇到了一个奇怪的问题。我正在向服务器发送表单数据,如下所示:

function submitForm(form) 
{
    var fd = new FormData();
    var file_data = isImageIncluded ? $('input[type="file"]')[0].files : [];
    for (var i = 0; i < file_data.length; i++) {
        fd.append("file_" + i, file_data[i]);
    }
    var other_data = $(form).serializeArray();
    $.each(other_data, function(key, input) {
        fd.append(input.name, input.value);
    });

    sendData(url, fd, form);
}

function sendData(url, data, form) 
{
    $.ajax({
        type: 'POST',
        url: url,
        data: data,
        contentType: false,
        processData: false,
        success: function(data) {
            console.log(data);
        }
    }
});
并且无法获取描述以在字符串中显示html标记。有人知道发生了什么吗

编辑 这是我在Chrome上的标题截图。我标记了我所指的对象。如图所示,html标记将发送到服务器,因此我不确定为什么它不会显示在$\u POST数组中

编辑2 下面是我得到的响应的屏幕截图,与上面标题的屏幕截图相对应:


有人见过这个吗?

对于那些想知道的人,我发现在我的无脂框架变体中,有一段代码去掉了标记。在它的app.php中,我发现

// clean ALL incoming user input by default
$request = array();
foreach (array('GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'COOKIE') as $var) {
    $input = $f3->get($var);
    if (is_array($input) && count($input)) {
        $cleaned = array();
        foreach ($input as $k => $v) {
            $k = strtolower(trim($f3->clean($k)));
            $v = $f3->clean($v);
            if (empty($v)) {
                continue;
            }
            $cleaned[$k] = $v;
            $request[$k] = $v;
        }
        ksort($cleaned);
        $f3->set($var, $cleaned);
    }
}

它使用
$f3->clean()
从所有传入的输入中删除标记,因此我必须按照文档中的说明将其修改为白名单标记。

只是为了确保,如果在html上下文中输出这样的字符串,您将不会看到
,而是看到粗体文本<代码>回显htmlspecialchars($_POST['description'])?您是否已在控制台中检查是否已将正确的数据发送到您的页面?是的,我已检查以查看发送的内容。标题显示所有标记,无论是粗体、斜体、删除线等。只有响应才会清除它们。我将尝试htmlspecialchars方法。谢谢还有其他代码在工作中,你没有向我们展示好的,我将发布完整的js和phpmethods@Dagon我用完整的代码进行了编辑。这段代码不属于框架。这是你应用程序的一部分,我才意识到。我正在使用一个名为F3样板的子框架(如果您愿意的话)。这是无脂肪的MVC版本。再次感谢您的帮助。这就解释了,如果您能及时更新您的答案,那就太好了,公平地说;)
// clean ALL incoming user input by default
$request = array();
foreach (array('GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'COOKIE') as $var) {
    $input = $f3->get($var);
    if (is_array($input) && count($input)) {
        $cleaned = array();
        foreach ($input as $k => $v) {
            $k = strtolower(trim($f3->clean($k)));
            $v = $f3->clean($v);
            if (empty($v)) {
                continue;
            }
            $cleaned[$k] = $v;
            $request[$k] = $v;
        }
        ksort($cleaned);
        $f3->set($var, $cleaned);
    }
}