AngularJs服务中的自定义AJAX属性
Custom AJAX property within AngularJs Service
非常简单的场景:
代码:
$.ajax({
type: "GET/POST",
url: 'http://somewhere.net/',
data: data,
beforeSend: '', // custom property
}).done().fail();
基本上,我正在寻找一种合法的方式来修改Angular工厂服务中的beforeSend
。请参阅我所拥有的:
myApp.factory('GetBalance', ['$resource', function ($resource) {
return $resource('/Service/GetBalance', {}, {
query: { method: 'GET', params: {}, }, isArray: true,
});
}]);
这里我使用的是AngularJs服务api问题是文档对我试图实现的目标没有太大帮助。
如果您想附加自定义headers
,可以这样做。
myApp.factory('GetBalance', ['$resource', function ($resource) {
return $resource('/Service/GetBalance', {}, {
query: { method: 'GET', params: {}, headers: { 'beforeSend': '' } }, isArray: true,
});
}]);
您可能对requestInterceptor感兴趣,尤其是对具有以下参数的addFullRequestInterceptor方法感兴趣:
它可以返回具有以下任何(或全部(属性的对象:
- headers:要发送的标头
- params:要发送的请求参数
- element:要发送的元素
- httpConfig:要调用的httpConfig
@Thalaivar建议的解决方案本应根据Angular文档工作,但无论出于何种原因,它在我的特定用例中都不起作用。
在这里,我提供了一个替代解决方案,为我制定如下:
myApp.config(['$provide', '$httpProvider', function ($provide, $httpProvider) {
// Setup request headers
$httpProvider.defaults.headers.common['modId'] = 1; // dynamic var
$httpProvider.defaults.headers.common['pageId'] = 2; // dynamic var
$httpProvider.defaults.headers.common['token'] = 'xyz'; // dynamic var
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
});
我知道在我的例子中,头值是硬编码的,但实际上情况会随着页面的变化而变化,所以这些值实际上是动态检索的。
同样,如果您使用的是基于$http
的服务,则不需要这样做。
相关文章:
- asp.net ajax属性值timestamp未定义
- 使用AJAX设置对象属性
- 无法获取属性'的值;拆分'在IE8中调用ajax之后
- 使用Ajax刷新页面属性
- 从类方法中的 ajax post 函数回调函数更改 javascript 类属性
- 错误:在 Firefox 中访问 AJAX 请求的属性“nodeType”的权限被拒绝
- AJAX/JS/PHP:如何替换发送到PHP文件的文件中的文本,并传递成功属性
- 无法使用.ajax调用显示MVC控制器返回的属性值
- Rails和ajax文件上传-无法读取属性'innerHTML'的空错误
- 根据单选按钮id属性调用ajax jquery
- PHP-AJAX复选框过滤器使用数据标记属性
- 无法设置未定义或空引用的属性“ajax已启用”
- 从 ajax jQuery 中的数据变量中获取属性
- 如何在 ajax 请求的回调中设置 ngInclude 元素的 src 属性
- 使用Spine.Model.Ajax,如何在模型更新时处理响应的JSON中的额外属性
- AJAX 数据 - 替换 HTML 与更新值属性
- jQuery 控件的 AJAX 文本属性成功,返回 [对象对象]
- 阻止执行数据 ajax 属性
- 如何创建具有多个AJAX属性的javascript对象
- AngularJs服务中的自定义AJAX属性