action在ajax帖子上返回空字符串

时间:2014-04-05 06:40:17

标签: javascript php ajax zend-framework2

我正在尝试使用ajax post请求发送json对象。 我正在做的事情有些不对劲。这是我的代码。

    $.ajax({
        url : formURL,
        type: 'POST',
        data : data,
        success:function(data, textStatus, jqXHR) 
        {
           console.log(data);
        },
        error: function(jqXHR, textStatus, errorThrown) 
        {
            console.log(errorThrown);
        },
    });

错误部分中的console.log抛出一个空字符串,无论我尝试在我的操作中返回什么。这是ajax帖子发布到的代码的一部分:

    public function saveInfosAction(){
        $request = $this->getRequest();
        $eav = $this->getServiceLocator()->get('Frontend\Model\Eav');
        return "test";
    }    

有人可以给我一个暗示,为什么它不起作用? 提前谢谢

4 个答案:

答案 0 :(得分:0)

您可以在其中定义网址和数据 尝试像url:http://example.com/myfile.php这样的直接网址            像

这样的数据
data:{'id':id, 'name': name}

然后发送json然后dataType :'json'

$.ajax({
        url : formURL,
        type: 'POST',
        data : data, // data will be like data : {data:data, id: id},
        dataType :'json',
        success:function(data) 
        {
           console.log(data);
        },
        error: function(jqXHR, textStatus, errorThrown) 
        {
            console.log(errorThrown);
        },
});

还会使用echoprint不返回

发回您的回复

答案 1 :(得分:0)

如果jqXHR.readyState=0jqXHR.status=0那么根据我的经验,这是一个跨域问题。请注意,如果您的网站加载了http://www.domain.com而您的ajax加载到http://domain.com,反之亦然,那么它将被视为跨域请求。

在chrome中打开您的页面并打开控制台(右键单击页面 - >检查元素 - >控制台选项卡) 再次运行你的ajax,看看你得到了什么错误。

chrome提供有关ajax错误的更详细信息,即使Firefox没有说什么

答案 2 :(得分:0)

感谢大家! 我发现了问题。

我尝试通过点击

链接来触发提交
    jQuery("#submitInfo").on('click',function(e){..) 

但我忘记了这一行

    e.preventDefault();

所以表单并没有真正贴上ajax函数。

答案 3 :(得分:-1)

使用ajax时,您必须使用echo从ajax请求页面返回值。将return更改为echo

echo "test";
exit;