Angular $ http.post不起作用,使用postman工作

时间:2017-03-17 17:20:31

标签: angularjs rest http ionic-framework

我创建了一个Ionic应用程序,该应用程序调用API来发布用户的当前位置。

请求的工作原理如下:
邮寄:http://mywebsite.com/api/Patients/AddLocation/17
身体:

{
"Latitude": 51.3753786,
"Longitude": -0.0833691
}

但是,我的Ionic应用程序中的以下代码可以正常工作:

$http.post('http://mywebsite.com/api/Patients/AddLocation/' + $scope.id, data)
                    .success(function () {
                        console.log('Updated location');
                    })
                    .error(function (error) {
                        console.log('Error updating location');
                        console.log("Error: " + error);
                    });

其中'数据'与上面的身体相同。

为什么这不起作用的任何想法?

更新: 以下是网络请求的几个屏幕截图:
网络请求可在imgur RWNDF.png获得 Postman request

3 个答案:

答案 0 :(得分:0)

如果您未在服务器中启用cors,则会发生这种情况。 在您的服务器中启用cors。 即使你不启用角色, 如果您使用chrome中的任何扩展名启用了cors,则get方法将完全有效。

答案 1 :(得分:0)

这是因为CORS。从服务器端启用cros,并在HTTP Access-Control-Allow-Origin: *中设置标头。

如果您的服务器应用是expressjs app,请使用以下代码启用CORS

var cors = require('cors'); 
..... 
app.use(cors());

否则使用chrome extension answers

这应解决问题

答案 2 :(得分:0)

将此与使用相同API并且有效的姐妹应用进行比较后,我能看到的唯一区别是一些插件不同。

为了解决这个问题,我删除了插件文件夹和平台文件夹,重新添加了android,只需要我需要的插件,现在可以了。我想这可能是我使用错误的插件混合创建的一些错误。

一个非常不满意的答案,但现在所有请求都有效!