导航:首页 > 编程语言 > angularjs2跨域请求

angularjs2跨域请求

发布时间:2022-09-23 09:59:02

A. Angularjs怎么实现跨域取数据

1.通过服务器或者后端语言去把一个跨域的地址代理到本域中,这个方法适用于大多数的跨域问题;
2.如果提供数据的方面支持js的回调函数的话可以通过js文件的跨域加载来获取数据,这个方法对于返回的数据有一定的要求!

B. 如何获取跨域请求的自定义response headers

AngularJS XMLHttpRequest:$http用于读取远程服务器的数据
$http.post(url, data, [config]).success(function(){ ... });
$http.get(url, [config]).success(function(){ ... });
$http.get(url, [config]).success(function(){ ... });
一、$http.jsonp【实现跨域】
1. 指定callback和回调函数名,函数名为JSON_CALLBACK时,会调用success回调函数,JSON_CALLBACK必须全为大写。
2. 指定其它回调函数,但必须是定义在window下的全局函数。url中必须加上callback。
二、$http.get【实现跨域】
1. 在服务器端设置允许在其他域名下访问
response.setHeader("Access-Control-Allow-Origin", "*"); //允许所有域名访问
response.setHeader("Access-Control-Allow-Origin", ""); //允许www.123.com访问
2. AngularJS端使用$http.get()
三、$http.post【实现跨域】
1. 在服务器端设置允许在其他域名下访问,及响应类型、响应头设置
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods","POST");
response.setHeader("Access-Control-Allow-Headers","x-requested-with,content-type");
2. AngularJS端使用$http.post(),同时设置请求头信息
$http.post('',{languageColumn:'name_eu'},{'Content-Type':'application/x-www-form-urlencoded'}).success(function(data){
$scope.instries = data;
});

C. AngularJS post请求微信code,发生跨域问题,怎么破

微信code不能用post或者get获取吧,应该会提示“请在微信客户端打开”之类的。如果只是跨域的话,可以在服务端做个代理。

D. angularjs get,post,jsonp怎么实现跨域请求

JSONP的原理是通过<script>标签发起一个GET请求来取代XHR请求。JSONP生成一个<script>标签并插到DOM中,然后浏览器会接管并向src属性所指向的地址发送请求。
当服务器返回请求时,响应结果会被包装成一个JavaScript函数,并由该请求所对应的回调函数调用。
AngularJS在$http服务中提供了一个JSONP辅助函数。通过$http服务的jsonp方法可以发送请求,如下所示:
$http .jsonp("") .success(function(data) {
// 数据
});

E. angularjs中跨域是什么方法跨域会提交几次post

1. ctrl+shift+p
2. 然后list package
3. 选择一个会自动打开其所在的目录.
里面会有一个readme.md, 然后就知道怎么用了.
那些文件一个是设置还有一个是快捷键绑定,Default是默认的版本,User是保存你自己修改的版本。
很多插件就是一些快捷键,你把Default文件打开看看就知道插件如何用了,不然就去插件官网看说明呗,sublime text这方面确实有点geek

F. angularjs get,post,jsonp怎么实现跨域请求

JSONP的原理是通过<script>标签发起一个GET请求来取代XHR请求。JSONP生成一个<script>标签并插到DOM中,然后浏览器会接管并向src属性所指向的地址发送请求。
当服务器返回请求时,响应结果会被包装成一个JavaScript函数,并由该请求所对应的回调函数调用。
AngularJS在$http服务中提供了一个JSONP辅助函数。通过$http服务的jsonp方法可以发送请求,如下所示:
$http .jsonp("") .success(function(data) {
// 数据
});

G. angular中$http怎么跨域post请求

post请求进行跨域
angularjs内置封装了类ajax的网络服务$http,所以实现了依赖外部插件来完成完整的前后端分离方案
$scope.main = {
getData: function () {
$http({
method: 'POST',
url: 'http://localhost:8000',
headers: {
'Content-Type' : 'application/x-www-form-urlencoded'
},
data: {
myUrl: 'http://c.m.163.com/nc/article/headline/T1348647853363/0-10.html'
}
}).then(function success(result) {
//数据请求成功
console.log(result.data);
},function error(err) {
//数据请求失败
console.log(err);
});
}

};
注意:表面上是向$http中传入了一个回调函数提供相应时调用,实际是返回了一个promise对象,angular1.2以上的版本对$http进行了优化
优化后:
$scope.main = {
getData: function () {

var myUrl = 'http://c.m.163.com/nc/article/headline/T1348647853363/0-10.html';
var url = 'http://localhost:8000';

var promise = $http({
method: 'POST',
url: url,
headers: {
'Content-Type' : 'text/plain'
},
data: {
myUrl: myUrl
}
});
console.log(promise);

//第一中写法
promise.then(function success(data) {
console.log(data);
},function error(err) {
console.log(err);
});

//第二种写法
promise.success(function (data) {
console.log(data);
});
promise.error(function (err) {
console.log(err);
});

}
};

当promise对象返回时,可以链式调用;也可以分开来操作
node服务器配置:
只使用 GET, HEAD 或者 POST 请求方法。如果使用 POST 向服务器端传送数据,则数据类型(Content-Type)只能是 application/x-www-form-urlencoded, multipart/form-data 或 text/plain中的一种。不会使用自定义请求头(类似于 X-Modified 这种)。
但请求以如果 GET, HEAD 或者 POST 以外的方法发起请求。或者,使用 POST,但请求数据为 application/x-www-form-urlencoded, multipart/form-data 或者 text/plain 以外的数据类型。比如说,用 POST 发送数据类型为 application/xml 或者 text/xml 的 XML 数据的请求或者使用自定义请求头(比如添加诸如 X-PINGOTHER)时,浏览器就需要向服务器发送预请求,以确定服务器是否支持后续请求,如果支持,浏览器则继续发送后续Ajax请求
//http对象,通过他可以创建服务器,设置端口号...
var http = require('http');
//url对象,可以解析url中的内容
var url = require('url');
//查询参数对象,处理查询参数
var ql = require('querystring');

var server = http.createServer(function (request,response) {

//设置编码格式
request.setEncoding('UTF-8');

//允许跨域请求, * 代表接收任何请求
response.setHeader('Access-Control-Allow-Origin','*');

//接收前端发送的所有请求数据
var postData = '';

//监听,前端有数据,有就调用
request.addListener('data',function (data) {

postData += data;

});
//前端数据接收完毕
request.addListener('end',function () {

console.log('数据接收完毕');

//转化为JSON对象
var postDataObj = JSON.parse(postData);

console.log(postDataObj);
console.log([url,ql]);

//接收服务器请求别的服务器或借口返回的数据
var resultData = '';

http.get(postDataObj.myUrl,function (request) {
request.setEncoding('UTF-8');

//监听数据,有数据执行回调
request.on('data',function (result) {
resultData += result;
});
//接收完毕,相应给前端
request.on('end',function () {
response.end(resultData);
});
}).on('error',function (err) {
response.end(err);
});
});

});
server.listen(8000,function (err) {
if(!err){
console.log('服务器端口在8000');
}
})

angularjs请求:
$scope.main = {
getData: function () {
$http({
method: 'POST',
url: 'http://localhost:8000',
headers: {
'Content-Type' : 'application/x-www-form-urlencoded'
},
data: {
myUrl: 'http://c.m.163.com/nc/article/headline/T1348647853363/0-10.html'
}
}).then(function success(result) {
//数据请求成功
console.log(result.data);
},function error(err) {
//数据请求失败
console.log(err);
});
}
};

H. 如何正确实现Spring+angularjs POST跨域提交

服务端Server实现,添加header属性如下
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Methods", "POST,GET,OPTIONS,DELETE");
response.addHeader("Access-Control-Allow-Headers", "X-Requested-With,Content-Type");

PS:在SpringMVC框架中,需要将这段代码加入自定义filter中进行全局过滤处理,否则直接放在具体的业务controller可能会无效;另外在自定义interceptor添加这段代码也会无效,原因是跨域第一次OPTIONS预检请求在filter阶段就验证不通过,根据HttpServletRequest执行的顺序(listen->filter->servlet),interceptor类无法拦截OPTIONS请求。
前端angularjs实现POST跨域提交
var app = angular.mole('app', []);
app.factory('requestInterceptor', ['$q', requestInterceptor]);
function HttpInterceptor($q) {
return {
request: function(config){
config.headers = config.headers || {};
config.headers['Authorization'] = "uShoSR0Oyy1bpgfZ/48VjyrnmjC3ALDv65KN+o+eQ04=";
return config || $q.when(config);
}
};
}
// 全局拦截器,跨域Post数据默认提交格式为application/x-www-form-urlencoded 通过拦截器修改为application/json
app.config(['$httpProvider', function($httpProvider){
$httpProvider.interceptors.push("requestInterceptor");
$httpProvider.defaults.headers.post['Content-Type'] = 'application/json';
}]);

app.controller('siteCtrl', function($scope, $http) {
$http({
method:'POST',
url:'http://localhost:8080/security/crossDomain',
data:{"biz":"biz100010"}
}).success(function(req){
console.log(req);
})
});

Spring Controller获取POST数据
@RequestMapping("/crossDomain")
@ResponseBody
public String crossDomain(HttpServletRequest request, HttpServletResponse response, @RequestBody String requestBody) {
System.out.println("requestBody:" +requestBody);
return "success";
}

用注解@RequestBody的方式获取browser端提交的数据data,在这里使用request.getParameter("biz")的值为null.

I. 前端angularjs后端thinkphp,怎么解决跨域

下面阐述一下AngularJS中使用$http实现跨域请求数据。
AngularJS XMLHttpRequest:$http用于读取远程服务器的数据
AngularJS端使用$http.post(),同时设置请求头信息
$http.post('http://localhost/ajax/getAllInstryCategoty.pt',{languageColumn:'name_eu'},{'Content-Type':'application/x-www-form-urlencoded'}).success(function(data){
$scope.instries = data;
});

J. $http跨域请求怎么解决

post请求进行跨域
angularjs内置封装类ajax网络服务$http,所实现依赖外部插件完完整前端离案
$scope.main = {
getData: function () {
$http({
method: 'POST',
url: '',
headers: {
'Content-Type' : 'application/x-www-form-urlencoded'
},
data: {
myUrl: ''
}
}).then(function success(result) {
//数据请求功
console.log(result.data);
},function error(err) {
//数据请求失败
console.log(err);
});
}

};
注意:表面向$http传入调函数提供相应调用实际返promise象angular1.2版本$http进行优化
优化:
$scope.main = {
getData: function () {

var myUrl = '';
var url = '';

var promise = $http({
method: 'POST',
url: url,
headers: {
'Content-Type' : 'text/plain'
},
data: {
myUrl: myUrl
}
});
console.log(promise);

//第写
promise.then(function success(data) {
console.log(data);
},function error(err) {
console.log(err);
});

//第二种写
promise.success(function (data) {
console.log(data);
});
promise.error(function (err) {
console.log(err);
});

}
};

promise象返链式调用;操作
node服务器配置:
使用 GET, HEAD 或者 POST 请求使用 POST 向服务器端传送数据则数据类型(Content-Type)能 application/x-www-form-urlencoded, multipart/form-data 或 text/plain种使用自定义请求(类似于 X-Modified 种)
请求 GET, HEAD 或者 POST 外发起请求或者使用 POST请求数据 application/x-www-form-urlencoded, multipart/form-data 或者 text/plain 外数据类型比说用 POST 发送数据类型 application/xml 或者 text/xml XML 数据请求或者使用自定义请求(比添加诸 X-PINGOTHER)浏览器需要向服务器发送预请求确定服务器否支持续请求支持浏览器则继续发送续Ajax请求
//http象,通创建服务器,设置端口号...
var http = require('http');
//url象,解析url内容
var url = require('url');
//查询参数象,处理查询参数
var ql = require('querystring');

var server = http.createServer(function (request,response) {

//设置编码格式
request.setEncoding('UTF-8');

//允许跨域请求, * 代表接收任何请求
response.setHeader('Access-Control-Allow-Origin','*');

//接收前端发送所请求数据
var postData = '';

//监听,前端数据,调用
request.addListener('data',function (data) {

postData += data;

});
//前端数据接收完毕
request.addListener('end',function () {

console.log('数据接收完毕');

//转化JSON象
var postDataObj = JSON.parse(postData);

console.log(postDataObj);
console.log([url,ql]);

//接收服务器请求别服务器或借口返数据
var resultData = '';

http.get(postDataObj.myUrl,function (request) {
request.setEncoding('UTF-8');

//监听数据,数据执行调
request.on('data',function (result) {
resultData += result;
});
//接收完毕,相应给前端
request.on('end',function () {
response.end(resultData);
});
}).on('error',function (err) {
response.end(err);
});
});

});
server.listen(8000,function (err) {
if(!err){
console.log('服务器端口8000');
}
})

angularjs请求:
$scope.main = {
getData: function () {
$http({
method: 'POST',
url: '',
headers: {
'Content-Type' : 'application/x-www-form-urlencoded'
},
data: {
myUrl: ''
}
}).then(function success(result) {
//数据请求功
console.log(result.data);
},function error(err) {
//数据请求失败
console.log(err);
});
}
};

阅读全文

与angularjs2跨域请求相关的资料

热点内容
word框中打勾 浏览:577
tcl笔试题java 浏览:467
win10怎么登录安全模式 浏览:679
除了archdaily还有什么网站 浏览:567
数控下料圆形怎么编程 浏览:785
安装游戏在文件管理找不到怎么办 浏览:216
想买奢侈包包下载什么app 浏览:1000
闪送员是哪里的app 浏览:530
火车站进站闸机的数据哪里可以查 浏览:503
cad备份文件清理软件 浏览:822
夹具装配图cad文件百度网盘 浏览:567
如何将excel表格转成文件包 浏览:1
网络配置文件应该怎么设置 浏览:886
苹果全能文件王下载位置 浏览:700
中国知网是哪些数据库 浏览:280
fastjson优点 浏览:302
mstcam数控铣床编程如何串连 浏览:502
d4252用什么软件编程 浏览:35
大学生如何参与大数据 浏览:779
autocad3维教程 浏览:2

友情链接