0

我有一个场景,我必须处理一个配置错误的服务器,它只理解一个字符串化的 JSON。与服务器一起工作的是:

    var req = JSON.stringify({id: 0, method: 'getToken', params: ['something', 'password', 'some_more_randomness']});
    $http({
        url: 'http://something.com/API',
        method: 'POST',
        data: req,
        responseType: 'json'
    }).success(function (data) {
        console.log('data', data);
    }); // works

而且我尝试使用 $resources 来消除麻烦,我有类似的东西:

var apiService = angular.module('apiService', ['ngResource']);

/**
* apiService Module
*
*/

apiService.factory('API', ['$resource', function ($resource) {
    return $resource('http://somethng.com/API', {}, {
        getToken: {
            method: 'POST',
            params: JSON.stringify({id: 0, method: 'getToken', params: ['something', 'password', 'some_more_randomness']})
        }
    });
}]);

这是行不通的。服务器无法解析参数。恐怕我无法访问服务器以允许正确发布到它。

我想做的是从服务中发出确切的请求。其他变体——在 [] 中包含 JSON.stringify 也无济于事。

在这里可以做什么?

4

1 回答 1

0

修复了这个问题,最好的方法如下;

代替

API.getToken();

我们需要传入数据;

API.getToken({}, {id: 0, method: 'getToken', params: ['something', 'pass', 'some_more_randomness']});

这对我的情况并不理想,因为创建新服务的全部目的是为 API 调用编写一个包装器,但是是的,我们可能需要一个服务来调用另一个服务,它只执行基本调用。

于 2014-03-13T16:10:59.130 回答