我正在尝试使用Angular JS编写以下Curl命令。我是AngularJS的新手,所以我可能缺少一些基本知识。具体来说,这是一个移动应用程序,它使用ionic框架(使用Angular JS)
curl命令是这样的:
curl -X POST -d "username=xxxx&password=xxxx&action=login&view=console" http://myserver.com/zm/index.php?skin=xml
从命令行可以完美运行。
在AngularJS中,我有以下代码:
angular.module('starter.controllers').controller('MonitorCtrl', function($ionicPlatform, $scope,$http)
{
console.log("***MAKING REQUEST");
//$http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
$http({
url:'http://myserver.com:9898/zm/index.php?skin=xml',
method:'post',
headers: {'Content-Type': 'application/x-www-form-urlencoded',
'Accept': '*/*',
},
transformRequest: function(obj) {
var str = [];
for(var p in obj)
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
var foo= str.join("&");
console.log ("****RETURNING "+foo);
return foo;
},
data: {username:'admin',
password:'xxxx',
action:'login',
view:'console'}
})
.success (function()
{console.log("****YAY");
})
.error(function(data, status, headers, config)
{
console.log("***OOPS "+status + " H: "+data);
});
});
当我运行此代码时,我看到一个POST请求发送到我的服务器(我正在使用httpry进行嗅探),并且从服务器返回了200OK并带有所需的有效负载,但是未调用我的成功处理程序。错误处理程序的状态为0
好吧,我终于想通了
a)Amir popovich是对的,如果我正在处理XML,则需要将JSON转换为XML(对于非Calvin和Hobbes读者来说,是一种神奇的转换方式)。我在问题中发布的更新代码可以做到这一点,并且可以正常工作。但是即使做了所有这些,我的URL发布(或获取)还是失败了。
b)我面临的整个DORS CORS错误是因为我在桌面浏览器(Safari)中运行此应用程序,除非响应器具有“接受原点”,否则它会排除响应
c)当我在手机上部署和测试该应用程序时,它就像一个魅力。不要问我为什么
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句