将javascript函数转换为Angular中的$ http提供程序

时间:2016-01-18 15:40:16

标签: javascript angularjs

我有以下功能,我试图使用$ http提供程序重写。文档显示了许多不同的方法,我无法做到这一点。这是功能:

function Ingest(Filename, ID, baseUrl, logger){       
  var url = baseUrl + '/php/' + 'Ingest.php';                                                                
  var dataString = 'Filename=' + encodeURIComponent(Filename) + '&ID=' + encodeURIComponent(ID);

  $.ajax({
    type: "POST",
    url: url,
    async: true,
    cache: false,
    data: dataString,
    success: function(results){                  
        logger.success('Ingestion process has been finished.', '', 'Success');                                                                                 
    }
    //fail
    , error: function (jqXHR, textStatus, errorThrown){
        alert("error:\r\n" + errorThrown);
    }            
  });
}

以下是$ http代码示例:

$http({
method: 'POST',
url: config.appBaseUrl + '/php/' + 'Ingest.php',
data: { ID: encodeURIComponent(ID), Filename: encodeURIComponent(Filename) }

}).then(function successCallback(response) {
    // this callback will be called asynchronously
    // when the response is available
}, function errorCallback(response) {
    // called asynchronously if an error occurs
    // or server returns response with an error status.
});

谢谢

1 个答案:

答案 0 :(得分:1)

在第一个样本中你做了一个帖子,在第二个样本中你得到了一个帖子。

您可以使用$ http。

提供的快捷方式
$http.post( config.appBaseUrl + '/php/' + 'Ingest.php',  Filename: encodeURIComponent(Filename), ID: encodeURIComponent(ID)).then(function(response){

}, function(rejection){

});

如果要为$ http(标题,...)设置一些特定配置,请使用函数的第3个参数。

请注意,快捷方式post / put有一个请求体的第二个参数,第三个用于配置.Delete和get没有请求体参数,所以配置是函数的第二个参数。