Angular资源如何保持ajax头和同时启用cors
发布时间:2020-12-17 07:44:32 所属栏目:安全 来源:网络整理
导读:在我的ng资源文件中,我启用了ajax标题: var app = angular.module('custom_resource',['ngResource'])app.config(['$httpProvider',function($httpProvider) { //enable XMLHttpRequest,to indicate it's ajax request //Note: this disables CORS $httpPro
在我的ng资源文件中,我启用了ajax标题:
var app = angular.module('custom_resource',['ngResource']) app.config(['$httpProvider',function($httpProvider) { //enable XMLHttpRequest,to indicate it's ajax request //Note: this disables CORS $httpProvider.defaults.headers.common["X-Requested-With"] = 'XMLHttpRequest'; }]) app.factory('Article',['$resource',function($resource) { return $resource('/article/api/:articleId',{articleId: '@_id'},{ update: {method: 'PUT'},query: {method: 'GET',isArray: true} }) }]) 所以我可以相应地分离ajax和非ajax请求和响应(发送json数据,如res.json(data),或者发送整个html页面,如res.render(‘a.html’) 例如,在我的错误处理程序中,我需要决定渲染error.html页面或只发送一条错误消息: exports.finalHandler = function(err,req,res,next) { res.status(err.status || 500) var errorMessage = helper.isProduction() ? '' : (err.message || 'unknown error') if (req.xhr) { res.json({message: errorMessage}) } else { res.render(dir.error + '/error_page.ejs') } } 但现在我需要做CORS请求到其他站点.在保持ajax标头的同时可以执行CORS请求吗?或其他方式我可以从服务器识别ajax和非ajax请求? 如果我的问题不清楚,请附上有关角和CORS的相关文章 基本上,我们需要删除xhr标头来为其他服务器启用cors,但是我需要我自己的服务器的标题 编辑2: 今天我试图整合谷歌地图,我得到这个错误: XMLHttpRequest cannot load http://maps.googleapis.com/maps/api/geocode/json?address=Singapore&sensor=false. Request header field X-Requested-With is not allowed by Access-Control-Allow-Headers.
如果您正在使用最新版本的angular.js,可以这样做
首先,添加xhr标题(你做的是正确的) $httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; 然后在你的google地图搜索功能 var searchAddress = function(address) { var params = {address: address,sensor: false}; //Note: google map rejects XHR header $http.get(google_map_web_api_url,{params: params,headers: {'X-Requested-With': undefined}}) .success(function(data,status,headers,config) { }) .error(function(data,config) { }) } 传入的头文件配置参数将会删除每个请求库的xhr,这意味着您的ng资源请求不会被修改 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Sublimetext 3和AngularJS – 语法突出显示(HTML)
- angularjs – 如何将特定绑定传递给Angular 1.5中组件路由器
- 从scala的Type中获取ParameterizedType?
- 轻松监控上万台服务器:企业运维监控平台架构设计与实践指南
- 将Scala文件放在Play Framework 2.0中的哪个位置,以便将其编
- 使用Grails Bootstrap Plugin实现界面美化(作者:NEO)
- bash – echo -e反斜杠转义在sh中没有得到尊重
- 动态调用webservice
- Angular2学习笔记(八) Angular2 模块
- angularjs – 寻找有关如何构建单个页面应用程序的说明