- 浏览: 504739 次
- 性别:
- 来自: 广州
最新评论
-
cppmule:
Play!在国内实际产品级应用案例有吗?有哪些公司在用?国外的 ...
play总结性介绍 -
你好javaword:
netty的个人使用心得 -
hyfwuhui:
java 并发环境下使用ConcurrentHashMap -
asialee:
朋在无锡 写道可以将Channels使用静态导入的方式:imp ...
netty的个人使用心得 -
朋在无锡:
可以将Channels使用静态导入的方式:import sta ...
netty的个人使用心得
方案一:使用jsonp ,
<script src='/jquery-1.4.2.min.js' type='text/javascript' > </script>
<script>
jQuery.getJSON("http://61.143.165.67:8088/GameManager/addCount?type=1&jsoncallback=?",
function(data) {
}
);
</script>
方案二:使用p3p0 设置头文件
方案三:使用服务器端语言,例如php
<?
//发送POST请求
function sendPost($url, $data, $timeout = 10) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
$html = curl_exec($ch);
curl_close($ch);
return $html;
}
//发送GET请求
function sendGet($url, $timeout = 10) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
$html = curl_exec($ch);
curl_close($ch);
return $html;
}
方案四:
falsh中的方案
/**
* @author Kinglong
* @version 0.5
*/
package com.klstudio.upload {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.external.ExternalInterface;
import flash.system.Security;
public class FlashProxy extends Sprite{
private var _params:Object;
private var _loader:URLLoader;
private var _method:String;
private var _id:String;
private var _parse:Boolean;
private var _inited:Boolean;
private var _data:String;
private var _xml:XML;
public function FlashProxy(){
Security.allowDomain('*');
_inited = false;
_data = "";
_parse = true;
_method = URLRequestMethod.POST;
_loader = new URLLoader();
configureListeners(_loader);
}
public function load(page:String,params:Object=null):void{
if(!_inited){
showError("FlashProxy还没有初始化!");
}
if(page == null || page == undefined){
showError("page参数为必须的!");
return;
}
var vars:URLVariables = new URLVariables();
vars.tmp = Math.random();
if(params != null){
for(var key in params){
if(key == "tmp"){
continue;
}
vars[key] = params[key];
}
}
_loader.dataFormat = URLLoaderDataFormat.TEXT;
var request:URLRequest = new URLRequest(page);
request.method = _method;
request.data = vars;
_loader.load(request);
}
public function setParse(value:Boolean):void{
_parse = value;
}
public function setMethod(value:String):void{
if(value == null || value == undefined){
return;
}
value = StringUtil.trim(value);
if(value.toLocaleUpperCase() == URLRequestMethod.POST || value.toLocaleUpperCase() == URLRequestMethod.GET){
_method = value.toLocaleUpperCase();
}
}
public function getData():String{
return _data;
}
private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}
private function completeHandler(event:Event):void {
_data = _loader.data;
if(_parse){
try{
_xml = new XML(_data);
}catch(error:Error){
_parse = false;
_xml = null;
Tracer.debug("xml解析错误!");
}
}
ExternalInterface.call(_id+".onComplete");
}
private function openHandler(event:Event):void {
ExternalInterface.call(_id+".onOpen");
}
private function progressHandler(event:ProgressEvent):void {
ExternalInterface.call(_id+".onProgress",event.bytesLoaded,event.bytesTotal);
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
showError("读取失败!\n 不能跨域访问,可能是你在web服务端根目录下没有放置crossdomain.xml文件!");
}
private function httpStatusHandler(event:HTTPStatusEvent):void {
showError("读取失败!\n HTTP错误代码为:"+event.status);
}
private function ioErrorHandler(event:IOErrorEvent):void {
showError("读取失败!\n 可能是因为下列原因:\n 1.网络忙,请稍候重试!\n 2.访问的web服务端没有开启!");
}
public function alert(msg:String):void{
navigateToURL(new URLRequest(msg));
}
public function showError(msg:String):void{
ExternalInterface.call(_id+".onError",msg);
}
}
}
<script src='/jquery-1.4.2.min.js' type='text/javascript' > </script>
<script>
jQuery.getJSON("http://61.143.165.67:8088/GameManager/addCount?type=1&jsoncallback=?",
function(data) {
}
);
</script>
方案二:使用p3p0 设置头文件
方案三:使用服务器端语言,例如php
<?
//发送POST请求
function sendPost($url, $data, $timeout = 10) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
$html = curl_exec($ch);
curl_close($ch);
return $html;
}
//发送GET请求
function sendGet($url, $timeout = 10) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
$html = curl_exec($ch);
curl_close($ch);
return $html;
}
方案四:
falsh中的方案
/**
* @author Kinglong
* @version 0.5
*/
package com.klstudio.upload {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.external.ExternalInterface;
import flash.system.Security;
public class FlashProxy extends Sprite{
private var _params:Object;
private var _loader:URLLoader;
private var _method:String;
private var _id:String;
private var _parse:Boolean;
private var _inited:Boolean;
private var _data:String;
private var _xml:XML;
public function FlashProxy(){
Security.allowDomain('*');
_inited = false;
_data = "";
_parse = true;
_method = URLRequestMethod.POST;
_loader = new URLLoader();
configureListeners(_loader);
}
public function load(page:String,params:Object=null):void{
if(!_inited){
showError("FlashProxy还没有初始化!");
}
if(page == null || page == undefined){
showError("page参数为必须的!");
return;
}
var vars:URLVariables = new URLVariables();
vars.tmp = Math.random();
if(params != null){
for(var key in params){
if(key == "tmp"){
continue;
}
vars[key] = params[key];
}
}
_loader.dataFormat = URLLoaderDataFormat.TEXT;
var request:URLRequest = new URLRequest(page);
request.method = _method;
request.data = vars;
_loader.load(request);
}
public function setParse(value:Boolean):void{
_parse = value;
}
public function setMethod(value:String):void{
if(value == null || value == undefined){
return;
}
value = StringUtil.trim(value);
if(value.toLocaleUpperCase() == URLRequestMethod.POST || value.toLocaleUpperCase() == URLRequestMethod.GET){
_method = value.toLocaleUpperCase();
}
}
public function getData():String{
return _data;
}
private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
}
private function completeHandler(event:Event):void {
_data = _loader.data;
if(_parse){
try{
_xml = new XML(_data);
}catch(error:Error){
_parse = false;
_xml = null;
Tracer.debug("xml解析错误!");
}
}
ExternalInterface.call(_id+".onComplete");
}
private function openHandler(event:Event):void {
ExternalInterface.call(_id+".onOpen");
}
private function progressHandler(event:ProgressEvent):void {
ExternalInterface.call(_id+".onProgress",event.bytesLoaded,event.bytesTotal);
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
showError("读取失败!\n 不能跨域访问,可能是你在web服务端根目录下没有放置crossdomain.xml文件!");
}
private function httpStatusHandler(event:HTTPStatusEvent):void {
showError("读取失败!\n HTTP错误代码为:"+event.status);
}
private function ioErrorHandler(event:IOErrorEvent):void {
showError("读取失败!\n 可能是因为下列原因:\n 1.网络忙,请稍候重试!\n 2.访问的web服务端没有开启!");
}
public function alert(msg:String):void{
navigateToURL(new URLRequest(msg));
}
public function showError(msg:String):void{
ExternalInterface.call(_id+".onError",msg);
}
}
}
发表评论
-
netty4更新详解
2015-11-14 10:52 641netty现在应该是java界最流行的网络框架之一了,高性能, ... -
Lua使用protocolbuf
2015-11-10 16:04 868在https://code.google.com/p/prot ... -
领域模型设计
2015-09-12 17:29 692一:面向对象设计中最简单的部分与最难的部分 如果说事务脚本是 ... -
关于分表与分库思路
2015-07-06 15:36 628首先主要实现应该参考开源产品,目前比较能上台面的是 tddl, ... -
NAT穿透解决方案介绍
2015-04-01 03:12 2008最近公司要实现在各种网络环境下面的多屏互动(机顶盒、andro ... -
音视频即时通讯开发中使用P2P技术的好处
2015-04-01 02:59 745在服务器的配置文件“A ... -
nat穿透原理
2015-04-01 02:01 1054一直以来,说起NAT穿透,很多人都会被告知使用UDP打孔这个技 ... -
Erlang学习记录(二)——基本数据类型
2015-03-30 03:51 474Erlang学习记录(二)—— ... -
集群、分布式、负载均衡区别与联系
2015-03-25 22:54 5931、Linux集群主要分成三 ... -
: 结构化数据的共享存储
2015-03-24 04:25 0开发笔记 (6) : 结构化数据的共享存储 开始这个话题前, ... -
:如何构建超强伸缩性的游戏服务器而集容错、负载均衡和无限伸缩性于一身
2015-03-24 04:04 913附标题:如何构建超强 ... -
edis在游戏服务器中的应用
2015-03-24 02:57 624edis在游戏服务器中的应 ... -
社交游戏之双机热备方案 预防单点故障
2015-03-23 04:46 881某一天深夜,单盘配置的服务器出现硬盘损坏,导致该服务器上所提 ... -
游戏服务器集群设计思路
2015-03-23 04:45 797对于我们的游戏服务器端来说,除了要满足一般的MMO服务 ... -
Erlang类型及函数声明规格
2015-03-04 14:33 662Erlang类型及函数声明规格 Author: Mail: ... -
(转)erlang lists模块函数使用大全
2015-02-12 16:26 629一,带函数Pred 1, all(Pred ... -
超越并行框架erlang之流的通讯框架
2015-02-05 17:41 653http://blog.codingnow.com/2011/ ... -
如何使用 Oracle Linux 中的硬件故障管理
2014-11-10 14:38 1473如何使用 Oracle Linux 中 ... -
配置nginx
2014-06-14 18:04 611http://www.cnblogs.com/wenanry/ ... -
centos 安装mysql
2014-06-13 12:23 600你是root權限嗎?_操作系統的_ 兩種方法 1 使用替換法 ...
相关推荐
文章引用了一篇博客的解决方案,并按照该博客的方法修改了自己的代码,最终实现了跨域访问服务器动态内容的目的。 在这个过程中,服务器端代码需要特别处理,以便能够返回正确的JSON格式数据,并且包含回调函数的...
本文将深入探讨这个问题,并提供终极解决方案。 一、理解跨域和同源策略 1. 同源策略:同源策略是浏览器为保障用户数据安全而实施的一种安全策略,规定JavaScript只能访问与当前页面同源(协议+域名+端口)的资源...
首先是一个简单的订单系统, 通过访问/loadOrderList, 最终以json串形式返回订单集合. 该项目使用Tomcat发布在7070端口. @RequestMapping(/loadOrderList) @ResponseBody public List<Order> loadOrderList(String ...
无论是用于监控用户访问权限,还是确保企业合规地处理用户隐私数据,抑或是实现跨域的身份联合,HP OpenView的身份管理解决方案都能够提供一套综合性的解决方案,使企业的信息安全管理更加完善。
而可跨域的SSO解决方案则进一步解决了不同域名下的系统认证问题,使得用户跨域使用服务时也能实现统一的身份验证和授权。 本篇文章详细介绍了实现可跨域单点登录的技术方案,并提供了基于.net的代码实例,帮助读者...
HTML5引入了一种新的API,即`postMessage`,它为跨域和跨窗口的数据传递提供了解决方案,同时也被用于Web Workers之间的通信。本文将深入探讨`postMessage`的工作原理,以及如何利用它来实现iframe跨域传递数据。 #...
作者建议可以继续研究这一领域,但同时指出现有的解决方案在效率上并不理想。 通过这篇文章,我们可以了解到JSONP和CORS跨域请求的原理和区别,以及在实际应用中可能遇到的问题和解决方法。尽管JSONP作为一种老旧的...
### JSON Web Token (JWT): 服务端信息传输安全解决方案 #### 概述 JSON Web Token (JWT) 是一种开放标准(RFC7519),它提供了一种在各方之间安全地传输信息的方法。JWT 能够确保信息的完整性和来源的真实性,...
为了解决这个问题,出现了多种解决方案,其中一种就是使用代理服务器。 代理服务器的基本思想是在客户端(浏览器)和目标服务器之间建立一个中间层。当客户端发起Ajax请求时,它实际上请求的是代理服务器,然后由...
针对`<iframe>`内容高度自适应,上述经典代码提供了一个解决方案。这段JavaScript函数`setIFrameHeight(iframe)`通过获取`<iframe>`内的内容文档(`contentDocument`),然后比较`body`和`documentElement`(HTML根...
- **Passport**:微软推出的一套SSO解决方案,主要用于Windows平台。 - **Kerberos**:一种基于票据的认证协议,广泛应用于大型组织。 - **Liberty Alliance**:一个由多个组织共同维护的标准,旨在提供一套通用的...
微信jssdk(JavaScript SDK)是由微信官方提供的一套开发工具包,它允许开发者在网页中调用微信提供的API接口,从而实现...开发者需要灵活运用现有的技术手段,并不断探索新的解决方案,以满足项目需求并最终实现功能。
最终,解决方案是让远程服务器提供一个新的PHP文件,专门用于接收SSO请求。这个新文件会去除原登录文件中的登录按钮判断逻辑,直接处理来自本地应用的请求。 以下是一个简化版的`ssologon.php`示例: ```php ...
另外,随着CORS(跨源资源共享)技术的成熟,CORS已经逐渐成为主流的跨域请求解决方案,因此在兼容性更好的现代浏览器中,开发者们更多地会使用CORS。 在实际开发中,实现JSONP跨域请求时需要特别注意以下几点: 1....
为了解决这个问题,团队可能探讨了多种解决方案,如JSONP、CORS(跨源资源共享)、代理服务器等。JSONP是一种简单的跨域方式,适用于只支持GET请求的API,而CORS则更为强大,允许服务器指定哪些来源可以访问,且支持...
"web文件上传终极版"项目显然旨在提供一种高效且美观的解决方案,以满足用户在学习和工作中的文件上传需求。这个项目可能包含一个精心设计的前端界面,能够优雅地处理文件选择、上传进度显示以及文件管理功能。 ...
智慧气象应用与服务平台建设方案是针对现代气象服务的智能化需求所提出的综合性解决方案。该方案旨在通过集成先进的信息技术,实现气象业务的科学管理、智能观测、精准预测和普惠服务,同时鼓励持续创新,以提升气象...
每个练习的"原始代码"代表了初学者可能的初始尝试,而"最终代码"则展示了更优化和专业的解决方案。在实践中不断学习,对照分析两者的差异,将是提升编程水平的有效途径。 总的来说,"JavaScript三十道经典练习题...
通过上述步骤,我们可以实现一个基于HTTPS的本地服务器解决方案来替代传统OCX ActiveX插件,该方案不仅支持最新的浏览器,而且具备更高的安全性与兼容性。此外,我们还介绍了如何使用各种工具和技术来完成这一过程,...