2012-11-16 35 views
1

我有我的项目的MVC体系结构,最近我有一个奇怪的问题。每当我尝试用PHP输出一些输出来响应Ajax请求时,我会在输出前输入8个字符。我注意到它只是在我想要回显时放入这些字符,但我不知道这些额外输入是如何来的,因为它们不在我尝试输出的字符串中。我检查了所有的文件编码,以确保它们不是问题。我甚至将响应留空以检查是否有一些脚本提前打印某些内容,但事实并非如此,输出内容没有任何字符时为空。从jquery的ajax获取额外的输入字符响应

有没有小费?

这里是我的JS:

$.ajax({ 
    url: _baseRoot + '/admin/request', 
    type: 'post', 
    data: "req=" + req + args, 
    success: function(data) 
    { 
     var result = data.split(","); 

     var m_type = ""; 

     switch(result[0]) 
     { 
     case "error": m_type = "red"; break; 
     case "warning": m_type = "yellow"; break; 
     case "success": m_type = "blue"; break; 
     } 

     showMessage(m_type, result[1]); 
    } 
    }); 
+0

额外的字符来自您的服务器,给我们你的JavaScript是不会帮助,除非你不想修改你的回应与JavaScript来摆脱他们。 –

+0

我其实做到了!我用jQuery的$ .trim修剪了数据。我知道这是我的一个问题,但我真的不知道为什么它在打印。 – MahanGM

回答

1

真的不能查明它没有看到后端,但大多数PHP项目进展,这些都是可能来自不同的包含文件,这并不意味着输出什么但有一个?>和换行符。 PHP解释器只是简单地将所有内容传递给不在<?php ?>标签内的输出。

如果你不想从php文件输出任何东西,你可以删除关闭?>,解释器只是检测到文件结束为脚本结束,它确保没有意外的空白潜入?>之后的输出。

+0

谢谢。我认为这是有道理的,因为我最近在我的文件中添加了一些间隔标记,并带有一个输入字符。我会试试看。 – MahanGM

+0

感谢您的建议。我真的不知道这一点! – MahanGM