symfonyv3& FOSRestBundlev2.1.1:如何激活jsonp处理

时间:2016-11-25 15:42:51

标签: jsonp symfony fosrestbundle

我有这个config.yml:

fos_rest:
    routing_loader:
        default_format: json
    view:
        mime_types:
            jsonp: ['application/javascript']
        formats:
            jsonp: true
        jsonp_handler:
            callback_param:       callback
            mime_type: application/javascript

当我打电话给example.com/app_dev.php/api/users/1.jsonp?callback=toto时,我已经用纯HTML格式得到了这个回应:

  

找不到" GET /api/users/1.jsonp"

的路线

当我将配置文件更改为:

fos_rest:
    routing_loader:
        default_format: json
    view:
        mime_types:
            jsonp: ['application/javascript']
        formats:
            jsonp: true
        jsonp_handler:
            callback_param:       callback
            mime_type: application/javascript
    format_listener:
            rules:
              - { path: '^/api', priorities: ['jsonp','json', 'xml', 'html'], fallback_format: json, prefer_extension: true }

错误仍然相同,但json编码。

如果我将application/javascript修改为application/javascript+json,则Chrome无法显示结果

PS:一切都符合标准格式:html,xml,json

1 个答案:

答案 0 :(得分:0)

此链接显示更简单的配置: http://symfony.com/doc/current/bundles/FOSRestBundle/2-the-view-layer.html#jsonp-custom-handler

所以试试:

# app/config/config.yml
fos_rest:
    view:
        jsonp_handler: ~

看看是否有效。