angular学习笔记(二十六)-$http(4)-设置请求超时
2014-07-31 15:58
417 查看
本篇主要讲解$http(config)的config中的timeout项:
数值,从发出请求开始计算,等待的毫秒数,超过这个数还没有响应,则返回错误
demo:
html:
js:
nodejs:
如代码所示,我们在后台设置2000毫秒以后返回内容,但是在$http的congif里设置等待超时为1000毫秒,所以,还不等到后台返回数据,请求就会被取消:
*注意: timeout只能在某个单独的$http()里面配置,不能通过$httpProvider.defaults.timeout进行配置
完整代码路径: https://github.com/OOP-Code-Bunny/angular/tree/master/OREILLY/18.4%20%24http(2)
$http({ timeout: number })
数值,从发出请求开始计算,等待的毫秒数,超过这个数还没有响应,则返回错误
demo:
html:
<!DOCTYPE html> <html ng-app = 'HttpGet'> <head> <title>18.4 $http(2)</title> <meta charset="utf-8"> <script src="angular.js"></script> <script src="script.js"></script> </head> <body> <div ng-controller = "dataController"> <span>{{data}}</span> </div> </body> </html>
js:
var jsonData = {name:"code_bunny"}; var httpGet = angular.module('HttpGet',[]); httpGet.factory('getData',function($http,$q){ return function(){ var defer = $q.defer(); $http({ method:'post', url:'/api/user', data: jsonData, headers: {'Authorization':'code_bunny'}, timeout: 1000 }).success(function(data,status,headers,config){ defer.resolve(data); }).error(function(data,status,headers,config){ defer.reject(data) }); return defer.promise } }); httpGet.controller('dataController',function($scope,getData){ $scope.data = getData() });
nodejs:
var express = require('express'); var bodyParser = require('body-parser'); var app = express(); // parse application/x-www-form-urlencoded app.use(bodyParser.urlencoded({ extended: false })); // parse application/json app.use(bodyParser.json()); app.use(express.static(__dirname+'')); var data = "name=code_bunny&age=3"; app.post('/api/user',function(req,res){ console.log(req.body); setTimeout(function(){ res.send(data) },2000) }); app.listen(3000);
如代码所示,我们在后台设置2000毫秒以后返回内容,但是在$http的congif里设置等待超时为1000毫秒,所以,还不等到后台返回数据,请求就会被取消:
*注意: timeout只能在某个单独的$http()里面配置,不能通过$httpProvider.defaults.timeout进行配置
完整代码路径: https://github.com/OOP-Code-Bunny/angular/tree/master/OREILLY/18.4%20%24http(2)
相关文章推荐
- Android http请求数据 设置超时
- HttpPost设置请求超时的2种方法:DefaultHttpClient与BasicHttpParams
- HTTP Get和Post请求设置超时
- android httpget httppost 请求,超时参数的设置
- 使用HttpURLConnection设置请求超时时间,请求超时时会导致自动重发。
- http 请求 超时时间设置
- okhttp3+retrofit2进行HTTP请求以及设置请求超时示例
- socket 请求接收完整的一个http响应(设置recv 接收超时选项SO_RCVTIMEO)
- 利用volley进行http设置请求头、超时及请求参数设置(post)
- 为ServerXMLHTTP对象的HTTP请求设置超时时间
- http请求设置setConnectTimeout()方法超时无响应
- Java HTTP请求时设置超时
- socket 请求接收完整的一个http响应(设置recv 接收超时选项SO_RCVTIMEO)
- 为ServerXMLHTTP对象的HTTP请求设置超时时间
- socket 请求接收完整的一个http响应(设置recv 接收超时选项SO_RCVTIMEO)
- Apache HttpClient设置请求超时时间和返回超时时间,以及超时重试
- 设置HTTP请求超时自动重发
- 利用volley进行http设置请求头、超时及请求参数设置(post)
- HttpClient连接请求超时设置
- 关于设置Http请求超时的办法