gpt4 book ai didi

angularjs - Angular ,使用资源时无法正确生成内容类型

转载 作者:行者123 更新时间:2023-12-04 13:23:30 24 4
gpt4 key购买 nike

我已经在Angular上使用资源尝试过以下命令:

angular.module('appServices', ['ngResource']).factory('Example', 
function($resource){

return $resource('http://api.example.com.br/teste', {}, {
query: {method:'GET', headers: {'Content-Type': 'application/json'}}
});
});

但是无法正确生成http内容类型,在这种情况下为“application/json”。

我见过类似的问题 AngularJS resource not setting Content-Type,但是我有最新的Angular版本(1.0.6/1.1.4)。

上面的代码有什么问题?

结论
  • 如前所述,HTTP Get方法不应具有主体。
  • 在上述版本中,属性 header 不起作用。我未成功使用以下命令:
    查询:{方法:'POST', header :{'Content-Type':'application/json'}}
  • 这种方式对我有用:
    $ http.defaults.headers.put ['Content-Type'] ='application/json';
  • 最佳答案

    查看1.1.4版本中的angular source,第8742行:

      // strip content-type if data is undefined
    if (isUndefined(config.data)) {
    delete reqHeaders['Content-Type'];
    }

    如果请求不包含任何数据(请求主体),则 Content-Type header 将被删除。

    我认为这是预期的行为,因为 GET请求没有正文

    另一方面,只要POST方法在请求正文中有数据,它就会按照您的期望设置内容类型。请尝试以下方法:

    将方法更改为 POST
    query: {method:'POST', headers: {'Content-Type': 'application/json'}}

    并使用一些参数调用您的资源操作:
    Example.query(yourData)

    在这种情况下,内容类型已正确设置。

    编辑:

    似乎它也可以与get一起使用,在这种情况下,数据位于第二个参数中:
    Example.query(yourParams, yourData)

    例如: http://jsfiddle.net/WkFHH/

    关于angularjs - Angular ,使用资源时无法正确生成内容类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16201929/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com