如何从$ http.get请求中删除标题,并将“application / json”和“text / plain”添加到“Accept”

时间:2015-09-27 10:03:46

标签: javascript angularjs xmlhttprequest

我是angularjs的新手,我正在尝试为现有的角度js应用添加一些新功能。 所有现有的调用都包含在复杂的逻辑中,所以我想我会直接打电话。这是我的电话代码:

code for my new call

当从angularjs代码对api进行现有调用时,它们可以工作,并在下面的图像顶部有以下标题(用红色文本标记为“Works”)。我的新调用添加了Access-Control-Request-Headers和Access-Control-Request-Method,如下图所示(红色文本中标有“Fails”)。

success and failing calls

当我查看Chrome控制台时,我发现新请求出现以下错误:XMLHttpRequest无法加载http://localhost/blablabla/v1/login.json。请求标头字段Access-Control-Allow-Headers不允许授权。

我也在请求中的“Accept”标题中缺少“application / json”和“text / plain”。如何将这些添加到“接受”并删除“Access-Control-Request-Headers”和“Access-Control-Request-Method”?

2 个答案:

答案 0 :(得分:0)

请在下面找到设置$ http请求选项的示例:

{{1}}

答案 1 :(得分:0)

  

我也在请求中的“Accept”标题中缺少“application / json”和“text / plain”。如何将这些添加到“接受”

浏览器正在制作preflight OPTIONS request。当您随后发出GET请求并获得服务器的许可时,您应该会看到您想要的标题。

(您真正的问题很可能是您没有设置服务器以正确响应预检请求。)

  

还摆脱了“Access-Control-Request-Headers”和“Access-Control-Request-Method”?

首先要删除需要预先请求的条件:你不能。这些是在进行预检请求时由浏览器自动添加的。