Symfony Ajax控制器处理程序,始终激发jQuery错误函数

Symfony Ajax控制器处理程序,始终激发jQuery错误函数,jquery,ajax,symfony,Jquery,Ajax,Symfony,我是Symfony framework的新手,我只是想实现一个简单的ajax示例: 路由: DartDartBundle_data_user: pattern: /data/user defaults: { _controller: DartDartBundle:Data:user } requirements: _method: POST 数据控制器: namespace Dart\DartBundle\Controller; use Symfo

我是Symfony framework的新手,我只是想实现一个简单的ajax示例:

路由:

DartDartBundle_data_user:
    pattern:  /data/user
    defaults: { _controller: DartDartBundle:Data:user }
    requirements:
        _method:  POST
数据控制器:

namespace Dart\DartBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\JsonResponse;

class DataController extends Controller
{
    public function userAction(){      
        $content = array('success' => true, 'name' => 'luis');
        $response = new JsonResponse($content,200);
        $response->headers->set('Content-Type', 'application/json; Charset=UTF-8');
    return $response;
    }
}
还有ajax调用:

$.ajax({
    type : 'GET',
    dataType: 'json',
    url : 'http://symfony.dartintelligence.com/app_dev.php/data/user',
    success : function(data){
        console.log("OK");
        console.log(data);  
    },
    error: function (xhr, ajaxOptions, thrownError){   
        console.log("SOME ERROR OCURRED");
        console.log(thrownError);
    }
});
但它总是触发错误函数。我不知道为什么。我尝试过不指定jston数据类型,而是使用Response而不是JsonResponse

我不知道怎么了。首先

路由配置为POST-only

Ajax请求是一个GET请求

尝试删除该要求


请尝试直接在浏览器中访问url,以检查路径配置是否正确,以及是否可以访问控制器。

请求来自同一服务器,但域不同。请求未使用任何vhost或域,其使用服务器的ip和htdocs文件夹

Symfony被放置在一个文件夹中,该文件夹有一个vhost别名,可以使用域(即Symfony.dartintelligence.com/app_dev.php/data/user)访问该别名。服务器中的文件夹位于/DART根文件夹内。所以它是./DART/symfony

这两种方法的firebug信息。例如,对于GET方法:

如果在浏览器中输入“”,是否会获得有效的json输出?另外,返回的错误是什么?在路由中,您将Ajax调用限制为“POST”,在javascript中,您将发出GET。尝试更改为$.ajax{type:'POST'…是的,两者都是正确的。如果我使用浏览器,它会给出预期的结果(如果我将其设置为GET方法)。很抱歉,我弄错了。我尝试了方法限制的GET或POST,并使用GET或POST尝试了两个Ajax调用,但结果相同。错误处理程序启动。您可以发布错误文本吗?Firebug的屏幕截图和“Error”谢谢你的反馈,正如我说的,我把事情搞混了,因为我尝试了两种方法,GET和POST。但是运气不好。我仍然使用这两种方法得到相同的错误,返回状态为200,但它触发了jQuery Ajax回调的错误处理程序。不知道为什么。Firebug截图:直接访问url是有效的,是的:。Ajax仍然有错误e同样的问题:(Ajax请求是来自同一来源还是跨站点请求?如果您在firebug(箭头符号)中打开请求,您可以从中读取哪些信息(标题->响应)