在AJAX响应中追踪换行符

时间:2015-05-20 10:41:34

标签: javascript php jquery ajax

我正在做一个AJAX请求,不知何故在某个地方添加了一个尾随的换行符 如果请求成功,我的PHP脚本会回显(或应该回显)'SUCCESS',否则会'ERROR'。 但目前它返回:'SUCCESS'(即'SUCCESS\n') 我通过添加显示换行符的alert("!" + msg + "!")看到了这一点。

我的AJAX电话:

function addMedia() {
    var addMediaName = $("#addMediaName").val();
    var notif;
    if(addMediaName != ""){
        $.ajax({
            url : '../../controler/add/addMedia.php',
            type : 'POST',
            data : "mediaName="+ addMediaName,
            dataType : 'text',
            success: function(msg,data, settings){
                if(msg == 'SUCCESS'){
                    $.toaster({ priority : 'success', title : 'Success', message : 'Mode created' });
                } else {
                    $.toaster({ priority : 'warning', title : 'Failed', message : 'Mode already exists' });
                }
            },
        });
    }
}

我的PHP控制器:

<?php
include ('../../model/request/add.php');
if((include_once '../../model/request/add.php')===FALSE) exit('erreur include');
$mediaName = $_POST['mediaName'];
$mediaName = ucfirst(strtolower($mediaName));
$media = addMedia($mediaName);
?>

addMedia函数:

function addMedia($mediaName)
{
    global $conn;
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    try {
        $sql = 'INSERT INTO media (mediaName) VALUES 
        ("'.$mediaName.'")';
        $conn->exec($sql);
        echo 'SUCCESS';
    } catch(PDOException $e) {
        echo 'ERREUR';
    }
}

知道换行的来源以及如何修复它?

2 个答案:

答案 0 :(得分:3)

这很可能是由PHP文件的结尾引起的,其中新行跟在?>之后。

现在,虽然之前可以die / exit,但我认为只需删除?>就可以解决这个问题。 PHP不需要结束标记,通常甚至认为更好的做法是不使用它,请参阅this SO question

答案 1 :(得分:2)

之后添加die()exit()
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.fs.FileSystem

echo 'SUCCESS'; die;    

如果您无法添加echo 'ERREUR'; die; ,则代码执行下一行代码,或者在这种情况下,它会调用&#39; view&#39;在MVC中。