Angular CORS适用于GET,但不适用于DELETE

用户名

我有一个Angular应用程序进行跨源调用。所有的GET调用都很好用。DELETE调用,但是引发错误:

XMLHttpRequest cannot load http://my.url.com:8080/api/invoices/12768. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. 

在后端,我将JAX-RS与Glassfish 4.1和Java 8结合使用。我正在创建ResponseBuilder,如下所示:

ResponseBuilder responseBuilder = Response
                    .status(status)
                    .type(MediaType.APPLICATION_JSON)
                    .header("Access-Control-Allow-Origin", "*")
                    .header("Access-Control-Allow-Credentials", "true")
                    .header("Access-Control-Allow-Methods", "POST, GET, DELETE")
                    .header("Access-Control-Max-Age", "1209600")
                    .allow("OPTIONS");

在Angular中,我像这样进行服务调用:

$http.delete(requestUrl)
                     .success(function (data, status, headers, config) {
                    deferred.resolve(data);
                }).error(function (data, status, headers, config) {
                    deferred.reject(status);
                });

事实是,这很好用:

$http.get(requestUrl)
                     .success(function (data, status, headers, config) {
                    deferred.resolve(data);
                }).error(function (data, status, headers, config) {
                    deferred.reject(status);
                });

知道为什么GET可以工作,但不能删除吗?

编辑:

另一个要注意的是,我知道它不是服务器端,因为如果我通过本地计算机上的Advanced Rest Client运行delete调用,则DELETE可以正常工作。

编辑2:

请求头

User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/{ipaddress} Safari/537.36
Origin: chrome-extension://hgmloofddffdnphfgcellkdfbfbjeloo
Content-Type: application/json 
Accept: */*
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,es;q=0.6
Cookie: treeForm_tree-hi=treeForm:tree:applications

响应头

Server: GlassFish Server Open Source Edition 4.1 
X-Powered-By: Servlet/3.1 JSP/2.3 (GlassFish Server Open Source Edition 4.1 Java/Oracle Corporation/1.8)
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: POST, GET, DELETE
Access-Control-Max-Age: 1209600
Allow: OPTIONS 
Content-Type: application/json 
Date: Fri, 07 Nov 2014 23:39:10 GMT 

内容长度:0

这些是正在使用的Advanced Rest Client的标题

用户名

好的,显然,Angular从标头中剥离了内容类型。使用此作品:

$http.delete({url:request,headers:{'Content-Type':'application/json'}})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

CORS Cookie可用于获取请求,但不适用于Angular2中的发布

来自分类Dev

适用于Angular 1.2,但不适用于1.3

来自分类Dev

Angular指令适用于内联样式,但不适用于类

来自分类Dev

Angular Test 仅适用于模拟服务类,但不适用于值

来自分类Dev

Angular $ http返回数据,但不适用于范围

来自分类Dev

Django + Angular CORS 不适用于 POST

来自分类Dev

ngAnimate不适用于Angular 1.2.16

来自分类Dev

Angular代码不适用于Express

来自分类Dev

AWS Cognito身份验证适用于Postman,但不适用于Angular Web应用程序

来自分类Dev

Node.js API-适用于Postman,但不适用于Angular.js

来自分类Dev

Angular 指令 ng-model 适用于数组但不适用于字符串

来自分类Dev

Angular 5 应用程序适用于生产构建,但不适用于开发构建

来自分类Dev

Django中的Jsonresponse可在浏览器中工作,但不适用于PostMan或Angular

来自分类Dev

Angular Universal不适用于Angular Google Maps

来自分类Dev

Angular Translate指令不适用于ngMessage

来自分类Dev

锚标记不适用于Angular UI-Router

来自分类Dev

Highlight.js不适用于Angular 2

来自分类Dev

Angular基础教程不适用于Windows吗?

来自分类Dev

触摸事件不适用于Angular中的Google Maps

来自分类Dev

崩溃过渡不适用于angular的UI引导程序

来自分类Dev

Angular JS验证不适用于Bootstrap的预输入

来自分类Dev

Angular指令不适用于更改值

来自分类Dev

Angular的ng include指令不适用于预期的链接

来自分类Dev

jQuery Xeditable不适用于Angular2

来自分类Dev

Angular.js set href不适用于指令

来自分类Dev

Angular2 useAsDefault不适用于子路由

来自分类Dev

ngStyle不适用于angular2中的!important

来自分类Dev

angular2 canActivate()不适用于Observable响应

来自分类Dev

Angular 10不适用于Windows 10

Related 相关文章

  1. 1

    CORS Cookie可用于获取请求,但不适用于Angular2中的发布

  2. 2

    适用于Angular 1.2,但不适用于1.3

  3. 3

    Angular指令适用于内联样式,但不适用于类

  4. 4

    Angular Test 仅适用于模拟服务类,但不适用于值

  5. 5

    Angular $ http返回数据,但不适用于范围

  6. 6

    Django + Angular CORS 不适用于 POST

  7. 7

    ngAnimate不适用于Angular 1.2.16

  8. 8

    Angular代码不适用于Express

  9. 9

    AWS Cognito身份验证适用于Postman,但不适用于Angular Web应用程序

  10. 10

    Node.js API-适用于Postman,但不适用于Angular.js

  11. 11

    Angular 指令 ng-model 适用于数组但不适用于字符串

  12. 12

    Angular 5 应用程序适用于生产构建,但不适用于开发构建

  13. 13

    Django中的Jsonresponse可在浏览器中工作,但不适用于PostMan或Angular

  14. 14

    Angular Universal不适用于Angular Google Maps

  15. 15

    Angular Translate指令不适用于ngMessage

  16. 16

    锚标记不适用于Angular UI-Router

  17. 17

    Highlight.js不适用于Angular 2

  18. 18

    Angular基础教程不适用于Windows吗?

  19. 19

    触摸事件不适用于Angular中的Google Maps

  20. 20

    崩溃过渡不适用于angular的UI引导程序

  21. 21

    Angular JS验证不适用于Bootstrap的预输入

  22. 22

    Angular指令不适用于更改值

  23. 23

    Angular的ng include指令不适用于预期的链接

  24. 24

    jQuery Xeditable不适用于Angular2

  25. 25

    Angular.js set href不适用于指令

  26. 26

    Angular2 useAsDefault不适用于子路由

  27. 27

    ngStyle不适用于angular2中的!important

  28. 28

    angular2 canActivate()不适用于Observable响应

  29. 29

    Angular 10不适用于Windows 10

热门标签

归档