javascript - $http.delete 返回没有信息的错误

标签 javascript angularjs http

我在使用 AngularJS 和 REST 网络服务时遇到了一个奇怪的问题。 这是我的代码:

$http.delete(appSettings['baseUrl'] + 'pricelistitem/' + article.itemNumber + '/' + article.acc)
                    .error(function(e) {
                        console.log(e);
                    });

调用此方法时,出现错误并执行了 .error,但 e 对象为 null

在控制台中,我收到此错误:

XMLHttpRequest cannot load <url>. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:5000' is therefore not allowed access.

在 postman 中执行 DELETE 请求时(与我的代码调用的请求相同),我在响应中得到了这些 header :

Access-Control-Allow-Methods → GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Origin → *
Content-Length → 2
Content-Type → application/json
Date → Fri, 29 May 2015 06:26:00 GMT
X-Powered-By → IBM i

我会说这些标题是正确的,我不应该得到这个错误。即使我这样做了,错误对象也是空的,所以根本没有显示任何信息。

更新 15/06: 尝试使用 PUT 和 DELETE 时都会出现此问题。 POST 和 GET 工作正常。在 Chrome 开发工具的网络选项卡中,我只能看到一个 OPTIONS 请求。在此请求中,Access-Control-Allow-Methods 不存在(但在 Postman 中测试时它在 PUT/DELETE 中),即使在配置 Apache 配置以在每个响应中包含此 header 之后.

我已经在这个问题上工作了几个小时,但没有任何结果。

是什么导致了这个问题? OPTIONS 请求是否也需要返回 Access-Control-Allow-Origin header ?

如有任何建议,我们将不胜感激!

最佳答案

No 'Access-Control-Allow-Origin' header is present on the requested resource

你面对的是Cross Domain问题,您应该做的是从服务器端启用 CORS

关于javascript - $http.delete 返回没有信息的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30522760/

相关文章:

javascript - 以 html post 形式存储重置密码 token 是否安全?

javascript - AngularJS,输入更改时在按钮上设置类

node.js - 使用 AngularJS 和 Express.js 上传文件

web-services - 如何在http请求体中支持中文?

javascript - 如何使用 JavaScript 从我的网站查询本地主机服务器?

javascript - 从javascript中的Session Provider类获取 session 变量

javascript - 验证文本区域的每一行都以某物开头

javascript - 如何在 jQuery datetimepicker 中格式化日期?

html - 在弹出窗口打开时向按钮添加 css 样式。关闭时将其删除

安卓内存错误