首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >AngularJS:$http.post抛出错误

AngularJS:$http.post抛出错误
EN

Stack Overflow用户
提问于 2013-04-15 11:20:07
回答 3查看 6.2K关注 0票数 2

我正在使用Request发布一些数据。在我的控制器中,我有以下代码:

代码语言:javascript
代码运行次数:0
运行
复制
$http.post('http://requestb.in/redacted', fooBar).
    success(function(data) {
        $scope.fooBarPostedSuccess = true;
    }).
    error(function(err) {
        console.log("Error while posting to Request Bin");
        console.log("Error Info : " + err);
    });

这是通过在UI上的按钮上触发的。现在,当这被触发时,数据不会被发送到Request,而我得到了以下错误:

代码语言:javascript
代码运行次数:0
运行
复制
XMLHttpRequest cannot load http://requestb.in/redacted.
Origin http://localhost:3000 is not allowed by Access-Control-Allow-Origin.

如何通过AngularJS控制器发布数据以请求bin?另外,上面的错误意味着什么?

编辑:我想在这里添加,我使用的是Node.js和AngularJS。这可能和Node有关吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-15 11:57:05

啊是的..。您正在处理跨域脚本问题。这不是AngularJS问题,而是浏览器安全限制和非常常见的摩擦点。

如果不进行跨源资源共享(CORS),您就不能将/PUT/DELETE发送到另一个域(与在您的情况下托管-- localhost不同)。您只能获得跨域HTTP请求。

你有两个选择:

  1. 查看您的API是否支持任何跨域功能。这可能是通过CORS,也可能是通过重载的GET API或JSONP。
  2. 代理请求通过您的服务器。由于您使用的是Node.js,通过服务器代理REST非常简单.您只需在您的Node.js服务器中设置一个路由处理程序(如/ API /redacted),然后使用Restler (NPM包)之类的内容向实际的API服务器发出新的请求,并将结果返回给客户端。

希望这能有所帮助!

编辑:

您的API支持JSONP (您的API文档)。您应该能够使用API的JSONP函数来访问API的JSONP功能。(Angular.js JSONP文档)。

因为您希望能够发布到服务,所以需要使用第二种方法。

票数 3
EN

Stack Overflow用户

发布于 2013-05-15 21:25:03

CORS允许GET和POST

分享

http://www.w3.org/TR/cors/

CORS

现在,这件事已经过时了.我也发现角的$http不允许我发布跨域。不过,我对此表示怀疑,因为在其他可以跨域发布的项目中有jquery调用。所以,我把我的$http帖子换成了$.ajax帖子,这就奏效了。

代码语言:javascript
代码运行次数:0
运行
复制
// $http({
//  url: url,
//  method: "POST",
//  data: data
// })
// .success(successCallback)
// .error(errorCallback)

// ole reliable
$.ajax({
  type : "POST",
  url : url,
  data : data,
  success : successCallback,
  error : errorCallback,
  cache : false,
  dataType : 'json',
})
票数 1
EN

Stack Overflow用户

发布于 2015-08-29 21:29:21

您可以使用PutsReq而不是RequestBin。PutsReq支持CORS

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16013858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档