当前位置: 首页 > 面试题库 >

角度,使用资源时无法正确生成内容类型

公良泰宁
2023-03-14
问题内容

我在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资源未设置Content-Type,但是我拥有最新的Angular版本(1.0.6 / 1.1.4)。

上面的代码有什么问题?

结论

  • 如以下所述,HTTP Get方法不应具有主体。
  • 属性标头在上述版本中不起作用。我未成功使用以下命令:query:{method:’POST’,headers:{‘Content-Type’:’application / json’}}
  • 这种方式对我有用:$ http.defaults.headers.put [‘Content-Type’] =’application / json’;

问题答案:

查看1.1.4版中的角度源,第8742行:

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

所述Content-Type,如果请求不包含任何数据(请求主体)报头被除去。

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

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

将方法更改为 POST

query: {method:'POST', headers: {'Content-Type': 'application/json'}}

并使用一些参数调用您的资源操作:

Example.query(yourData)

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

编辑

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

Example.query(yourParams, yourData)

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



 类似资料:
  • 上下文我在Laravel8中工作,我使用DataTables插件来显示数据库中的记录。正如您将在代码中看到的,我使用Route::resource('animal','AnimalController')创建了所有要执行CRUD的路由。这将为销毁方法生成如下路径:animal/{id} 问题。当我按下特定记录的删除按钮时,记录会被删除,没关系,但是浏览器控制台会返回这个错误:“此路由不支持DELE

  • 问题内容: 将Apostrophe放在资源包中后,翻译不正确。 如果我将上述格式的密钥从A格式化,则省略撇号。这可能是什么问题? 问题答案: 您应该将单引号转义为

  • 所以我试图使用Content-Type: Application/json从角向我的rails后端发送一个POST请求。我在控制台中收到以下错误: angular.js:12578选项http://localhost:3000/api/student_create404(未找到) 和 XMLHttpRequest无法加载http://localhost:3000/api/student_creat

  • 这过去适用于所有以前版本的JAXB。我已经升级到JAXB的2.2.7版本,现在抛出以下内容: java.lang.AssertionError:javax.xml.bind.jaxBException-带有链接异常:[com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException:1 counts of IllegalAnnotat

  • 我试图使用thymeleaf生成pdf,但问题是在生成pdf时,没有加载css和js等静态资源。如果我将html呈现为网页,则资源会完全加载,但每当我生成pdf时,都不会应用资源。有人知道有没有办法解决这个问题吗? 提前谢谢。

  • 我一直试图仅使用文件内容检测MIME类型,使用Apache Tika Core和Apache Tika Parser1.23 jars。下面是用于相同内容的代码: Tika无法检测扩展名为。tmp(text/plain file)和iso-8859-1字符集的文件的内容类型,内容如下: èé 通过以下方式正确检测具有相同配置和以下内容的文件: 000000000000000000000000000