$http跨域请求怎么解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了$http跨域请求怎么解决相关的知识,希望对你有一定的参考价值。

参考技术A 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);
);

;

http网页建立websocket跨域问题,怎么解决?

websocket是springmvc搭建的,发布程序的容器是tomcat。服务器代码加了setAllowedOrigins("*"),tomcat的web配置也加了允许跨域,但还是报错Access to XMLHttpRequest at 'ws://127.0.0.1:7080/bwhdGame/game' from origin 'http://127.0.0.1:7080' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.

websocket是htm5提供的一种全双工通讯的协议。
websocket不存在跨域问题,html网页通过new Websocket(url,[protocol]);创建对象。
看你的提示应该是使用了ajax请求。
参考技术A 做websocket开发,我用的是GoEasy这个框架,支持单聊、群聊、发送图片/视频/语音等,具备断线重连、心跳机制等,GoEasy整体的稳定性还不错,算是目前比较好用的一款websocket框架了。地址:

以上是关于$http跨域请求怎么解决的主要内容,如果未能解决你的问题,请参考以下文章

什么是跨域、怎么解决跨域?

electron打包后http请求为啥不存在跨域了

Vue项目中跨域问题的解决

web跨域问题(java) 跨域请求

vue 使用 axios 时怎么解决跨域问题

用webuploader怎么解决跨域上传文件的问题