Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS$http.post_Angularjs_Angular Http - Fatal编程技术网

AngularJS$http.post

AngularJS$http.post,angularjs,angular-http,Angularjs,Angular Http,我正在尝试做一个$http.post并获得响应,我尝试了几种方法,但无法使其工作。 我正在发送的数据(userData)是一个json对象 $http.post(url, userData) .success(function(data, status, headers, config) { console.log('post success'); console.log('data'); console.log(data);

我正在尝试做一个$http.post并获得响应,我尝试了几种方法,但无法使其工作。 我正在发送的数据(userData)是一个json对象

 $http.post(url, userData)
    .success(function(data, status, headers, config) {
        console.log('post success');
        console.log('data');
        console.log(data);
        console.log('status');
        console.log(status);
        console.log('headers');
        console.log(headers);
        console.log('config');
        console.log(config);
    }).error(function(data, status, headers, config) {
        console.log('post error');
        console.log('data');
        console.log(data);
        console.log('status');
        console.log(status);
        console.log('headers');
        console.log(headers);
        console.log('config');
        console.log(config);
    });
我的状态是404


谢谢

404表示您发送请求的URL不存在

如果您正在使用一个子目录,如
mysite.com/angular site
,并将此处的URL设置为相对路径,如“/URL/to/api”-您将访问“
mysite.com/URL/to/path
”,而不是正确的“
mysite.com/angular site/URL/to/path

所以请注意,这可能是问题所在。

响应“405方法不允许”是因为您的浏览器正在通过$http执行“飞行前”选项方法请求,而您的服务器不支持该请求。有一系列先决条件响应来启用CORS。如果您有权访问服务器,则可以添加对它的支持。一种选择是使用nginx作为具有这种配置的前端代理:

阅读评论——它们真的很有用


另外:请参阅此处的“预飞请求”:

表示请求的URL不存在。请提供更多信息,以便我们可以帮助您。我确信URL存在。我做了一个错误的调用,比如http({method:'POST',url:'url',data:userData,headers:{'Content-Type':'application/x-www-form-urlencoded'})。success(函数(数据){console.log('POST success');console.log('data');console.log(data);})。error(函数(数据){console.log('POST error'));console.log('data');console.log(data);})<代码>和错误不同的是不是404,是415不支持的媒体类型,这是正确的,因为用户数据应该是json。没有更多的代码,我不能给你任何有用的帮助。URL不支持POST方法或来自服务器的一些奇怪响应。使用firebug调试时,我意识到控制台中的错误(当我显示状态时)是404,但在.Net中是另一个错误,不允许使用405方法。我正在运行一个带有nodejs(带有express和cors)的服务器,该服务器调用一个外部http服务。您可能正试图通过POST请求访问get服务。尝试将$http.post更改为$http.getI我意识到听者属性在工作时和不工作时是不同的。我正试图用angularjs改变这一点。非常感谢@Brian。服务器不支持CORS,但我将尝试找出如何使用nginx来实现这一点。