我使用AngularJS来调用支持JSON API的远程单元。 呼叫按此进行:
'use strict';
var app=angular.module('app', [])
app.controller('Login', function ($scope, $http) {
$scope.login = function () {
$scope.user;
$scope.passwd = "";
$scope.message = "";
$http.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded";
$http.post('http://192.168.30.1/jsonrpc',
{
"params": [{
"url": "sys/login/user",
"data": [{
"passwd": $scope.passwd,
"user": $scope.user,
}]
}],
"session": 1,
"id": 1,
"method": "exec"
}).then(function (response) {
if (response.result.status.code == 0) {
$scope.message = 'Bienvenue'
}
else {
$scope.message = 'Non authetifie'
}
}, function () {
$scope.message = 'erreur'
})
}
} );
如上面的代码所示,$http.post
中的第二个参数是一些JSON数据,它们将被发送到远程单元,响应也是JSON。
当我发送请求时,我可以看到带有fiddler的JSON响应但是在$ scope.message中我得到erreur
,因为对于javascript没有收到响应。
由于我遇到了CORS问题,我想知道我可以使用$http.jsonp
发送与JSONP相同的数据吗?
我的问题是,$http.jsonp
仅将url
和[config]
作为参数而不是$http.post
,因此我无法通过它发送我的JSON数据。