AngularJS $ http.post

时间:2014-03-12 07:18:28

标签: 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);
        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.

谢谢

2 个答案:

答案 0 :(得分:1)

" 405方法不允许"回应是因为您的浏览器正在进行预检"通过angular $ http的OPTIONS方法请求,您的服务器不支持它。启用CORS有许多先决条件响应。如果您有权访问服务器,则可以添加对它的支持。一种选择是使用nginx作为这种配置的前端代理:

http://enable-cors.org/server_nginx.html

阅读评论 - 它们确实非常有用。

另外:参见" Preflighted Requests"在这里:https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS

答案 1 :(得分:0)

404表示您发送请求的网址不存在。

如果您正在使用mysite.com/angular-site之类的子目录,并在此处将URL设置为相对路径,例如" / url / to / api" - 你将进入" mysite.com/url/to/path"而不是正确的" mysite.com/angular-site/url/to/path"。

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