ajax 禁止跨域,AJAX_解决AJAX中跨域访问出现''没有权限''的错误,禁止访问非同域的网站,下面一 - phpStudy...

2023-10-29

解决AJAX中跨域访问出现''没有权限''的错误

禁止访问非同域的网站,下面一个例子来访问http://www.google.cn,

function createobj() {

if (window.ActiveXObject) {

return new ActiveXObject("Microsoft.XMLHTTP");

}

else if (window.XMLHttpRequest) {

return new XMLHttpRequest();

}

}

function getWebPage(url) {

var oBao=createobj();

var my_url=url

oBao.open('get',my_url,false);

oBao.onreadystatechange=function(){

if(oBao.readyState==4){

if(oBao.status==200){

var returnStr=oBao.responseText;

document.write(returnStr);

}else{

document.write("未找到您输入的地址或服务器505错误!");

}

}

}

oBao.send(null);

}

getWebPage('http://www.google.cn');

保存这段代码到test.html,在本地直接用IE打开没问题,但将该段代码上传到服务器后,问题出现了--JS提示"没有权限"错误!!!这该如何解决呢?

下面思考一下:既然不能访问非同域的,只能访问同域的地址了,同域的动态文件怎么获取非同域网页内容呢?我们还是想到的AJAX,只不过这个AJAX是在服务器端执行.

大体思路是这样的:首先将URL用AJAX提交给自己站内的文件,例如getPage.asp---在getPage.asp再次通过服务器XMLHTTP来访问提交来的URL---将获取的内容返回给提交URL的页----显示内容

下面开始组织代码,首先是test.html文件

function createobj() {

if (window.ActiveXObject) {

return new ActiveXObject("Microsoft.XMLHTTP");

}

else if (window.XMLHttpRequest) {

return new XMLHttpRequest();

}

}

function getWebPage(url) {

var oBao=createobj();

var my_url="getpage.asp?url="+escape(url);

oBao.open('get',my_url,false);

oBao.onreadystatechange=function(){

if(oBao.readyState==4){

if(oBao.status==200){

var returnStr=oBao.responseText;

document.write(returnStr);

}else{

document.write("未找到您输入的地址或服务器505错误!");

}

}

}

oBao.send(null);

}

getWebPage('http://www.google.cn');

再就是getpage.asp文件(注意:要以UTF-8格式保存本文件,防止乱码),如下:

response.charset="UTF-8"

reg="\\/]*).+\/{0,1}\>"

'函数名:GetResStr

'作用:获取指定URL的HTML代码

'参数:URL-要获取的URL

function GetResStr(URL)

err.clear

dim ResBody,ResStr,PageCode,ReturnStr

Set Http=createobject("MiCROSOFT.XMLHTTP")

Http.open "GET",URL,False

Http.Send()

If Http.Readystate =4 Then

If Http.status=200 Then

ResStr=http.responseText

ResBody=http.responseBody

PageCode=GetCode(ResStr,reg)

ReturnStr=BytesToBstr(http.responseBody,PageCode)

GetResStr=ReturnStr

End If

End If

End Function

'函数名:BytesToBstr

'作用:转换二进制数据为字符

'参数:Body-二进制数据,Cset-文本编码方式

Function BytesToBstr(Body,Cset)

Dim Objstream

Set Objstream = CreateObject("adodb.stream")

objstream.Type = 1

objstream.Mode =3

objstream.Open

objstream.Write body

objstream.Position = 0

objstream.Type = 2

objstream.Charset =Cset

BytesToBstr = objstream.ReadText

objstream.Close

set objstream = nothing

End Function

'函数名:GetCode

'作用:转换二进制为字符

'参数:str-待查询字符串,regstr-正则表达式

Function GetCode(str,regstr)

Dim Reg,serStr

set Reg= new RegExp

Reg.IgnoreCase = True

Reg.MultiLine = True

Reg.Pattern =regstr

if Reg.test(str) then '若查询到匹配项

Set Cols = Reg.Execute(str)

serStr=Cols(0).SubMatches(0) '使用匹配到的第一个匹配项

else '否则给个默认值gb2312,有点省懒法,如果页面没给出编码格式,想知道确实有点麻烦

serStr="gb2312"

end if

GetCode=serStr

end function

dim url:url=request.querystring("url")

response.write GetResStr(URL)

%>

代码组织完毕,实验下,成功提取http://www.google.cn的内容!!!!!这样就可以解决"没有权限"的问题了。

其实,单纯一个getpage.asp一样能获取,不过不能像js那样动态的处理DOM。

还有一个问题,如果你用第一种方法访问http://www.baidu.com会出现乱码,因为baidu编码为GB2312,

而XMLHTTP返回的是UTF-8编码格式。用第二种方法就不会出现这样的问题了,只要定义了编码格式的站点就能正常返回信息(这里不能包括一些使用特别编码的站点)。相关阅读:

Windows系统网络共享的应用

JavaScript 变量作用域及闭包

PHP文件读写操作之文件读取方法详解

Bootcfg 配置、查询或更改 Boot.ini 文件设置

linux提权技巧分享

Ubuntu 7.04系统上安装Apache PHP MySQL

对oracle执行计划进行监控

rs.open和conn.execute

Linux驱动开发学习的一些必要步骤

[FAQ]PHP中的一些常识:类篇

SQL里类似SPLIT的分割字符串函数

asp.net页面中插入普通视频的三种方式

分享Ubuntu Linux上边的CVS服务器配置

HTML表格标记教程(20):行的背景色属性BGCOLOR

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ajax 禁止跨域,AJAX_解决AJAX中跨域访问出现''没有权限''的错误,禁止访问非同域的网站,下面一 - phpStudy... 的相关文章

  • 软件测试方法 -- 等价类边界值

    测试用例设计方法 测试用例的定义 测试用例是为了特定的目的而设计的一组测试输入 执行条件和预期的结果 以便测试是否满足某个特定需求 通过大量的测试用例来检验软件的运行效果 他是指导测试工作进行的依据 下面我们介绍几种常用的黑盒测试方法 等价
  • vue结合百度统计实现事件埋点

    目录 背景 知识科普 埋点意义 埋点类型 接入流程 一 申请账号 二 添加站点 三 安装代码 四 代码安装检查 添加事件监控 封装vue的自定义指令 第三方插件 1 下载 2 引用 3 安装 4 使用 track event track p
  • kl距离以及零值处理方法

    粘贴自 http www cppblog com sosi archive 2010 10 16 130127 aspx In probability theory and information theory the Kullback L
  • ffmpeg 转换x264到Fragmented MP4

    ffmpeg re i d test 264 g 52 acodec libvo aacenc ab 64k vcodec libx264 vb 448k f mp4 movflags frag keyframe empty moov d
  • 从0开始学模拟挂(一)--找内存基址,包含原理 _ 脚本..._按键精灵论坛

    PS 12楼的兄弟 不能回到选择人物画面 那你就换个地图试试 也可以请看下篇 找内存基址方法 二 页面有人问怎么自动加血 我板凳帖子里不是有了 读取血内存地址的代码了吗 把那份代码 你用两次 第一次读取出来的数值作为最大血值 再用一次来读取
  • hyper-v、VT-x、WSL2冲突问题

    hyper v功能与vt x冲突 开启hyper v后vt x显示为未开启 其中 如果需要使用虚拟机 需要开启vt x 安卓虚拟机VMware等 WSL2网上查资料需要开启hyper v 但是我没装成 一直报错 请启用虚拟机平台 Windo
  • STL 比较器

    一 什么是 tmd 比较器 在C 的STL 标准模板库 中 比较器通常用于对容器中的元素进行排序或查找 STL提供了多种比较器的方式 主要通过函数对象或者lambda表达式来实现 以下是一些常见的比较器示例 1 函数对象 Function
  • 开源协议介绍

    Apache Licene 2 0 Apache Licence是著名的非盈利开源组织Apache采用的协议 该协议和BSD类似 同样鼓励代码共享和尊重原作者的著作权 同样允许代码修改 再发布 作为开源或商业软件 需要满足的条件也和BSD类
  • pycharm使用多版本python----疑难之setuptools

    系列文章目录 第一章 pycharm使用多版本python 疑难之setuptools 提示 写完文章后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 系列文章目录 文章目录 前言 一 setuptools是什么 二 解决办法
  • 封装springboot基础框架(含demo)

    写此篇博文目的有2个 一 我想做一个最小化框架 包括配置 拦截器 工具包等等都一应具备 使开发可以直接开始编写业务代码 所以我的demo的名字叫做springboot base 二 这也是为了以后介绍springcloud做的一个铺垫 该框
  • vscode Java开发环境搭建

    java系列文章目录 文章目录 java系列文章目录 前言 本文的目的 一 安装Java Extension Pack插件 二 配置全局的Java与Maven 三 开始创建Maven项目 四 配置该项目的settings json 五 补全
  • 自制无盘更新服务器,无盘云更新安装服务器流程

    无盘云更新安装服务器流程 内容精选 换一换 在 云服务器列表 页 单击 操作 列下的 查看应用 查看应用的状态为 安装失败 将鼠标移动至 安装失败 处 查看具体的失败原因 并根据表1进行故障排除 CVR服务端支持使用的应用需要满足以下条件
  • 不简单的单例模式Singleton

    版权声明 本文为博主原创文章 未经博主允许不得转载 单例模式 即Ensure a class only has one instance and provide a global point of access to it 只有一个实例 是
  • 猎头推荐成功一个人竟然收年薪一半,也太赚了吧

    猎头推荐成功一个人竟然收年薪一半 也太赚了吧 这个问题似乎有点危言耸听了 有网友说女朋友是猎头 推荐成功并没有提成 要一个季度内推多少个之后 之后再成的才有30 提成 当然每个公司情况都不一样 很多猎头是不挣钱的 公司有成本线 超出成本线你
  • 【QT】Mac电脑(苹果电脑)Qt 菜单栏不显示的问题解决办法

    QT Mac电脑 苹果电脑 Qt 菜单栏不显示的问题解决办法 我所遇到的问题 并不是qt for mac 不显示菜单栏 而是菜单栏显示到Mac 菜单栏上去了 我想让Qt 菜单栏显示位置和win 系统下一样 不管是在纯代码环境和UI 设计环境
  • 水仙花数JAVA代码实现

    java代码实现求取水仙花数 水仙花数 Narcissistic number 也被称为超完全数字不变数 pluperfect digital invariant PPDI 自恋数 自幂数 阿姆斯壮数或阿姆斯特朗数 Armstrong nu
  • js 刷新页面但是不闪烁_Js历史

    1 Js是为了赶上java的潮流 把名字从LiveScript改为JavaScript 2 Js出现原因 最初的输入验证必须把表单数据发到服务端上才能验证 而最初的js是为了解决这个问题 3 Web浏览器只是js实现的可能的宿主环境之一 其
  • C - Candy Machine 二分

    传送门 题意 JB非常喜欢糖果 有一天 他发现了一台糖果机 里面有 N里面有糖果 看完机器的说明书后 他知道他可以选择一个子集 N糖果 每颗糖果都有一个甜味价值 JB 选择子集后 假设所选糖果的平均甜度值为 X 所有甜度值严格大于的糖果 X
  • 可以写进简历的软件测试电商项目(超详细版),不进来get一下?

    前言 说实话 在找项目的过程中 我下载过 甚至付费下载过 N多个项目 联系过很多项目的作者 但是绝大部分项目 在我看来 并不适合你拿来练习 它们或多或少都存在着 问题 比如 1 大部分项目是web项目 很难找到app项目 特别是有app安装

随机推荐

  • svn 服务器忽略文件夹,SVN忽略不提交文件夹

    层次分析模型 AHP 及其MATLAB实现 今天用将近一天的时间学习了层次分析模型 AHP 主要参考了一份pdf 这个网站 和暨南大学章老师的课件 现写出一些自己总结的要点 一 层次分析法的基本步骤 角度一 实际问题 分解 gt SQL S
  • spring 总结

    1 spring是什么 是一个开源的控制反转和面向切面的容器框架 2 控制反转就是应用本身不负责依赖对象的创建和维护 依赖对象的创建和维护是由外部容器负责的 这样控制权就由应用转移到了外部容器 控制权的转移就是所谓反转 3 依赖注入 在运行
  • 有头链表实现(C++描述)

    有头链表实现 include
  • PAT(Advanced Level)刷题指南 —— 第八弹

    一 1015 Reversible Primes 进制转换 质数判定 1 问题描述 不断给出两个数 N 和 D 直到输入负数终止 判断 N 是否为素数 并以 D 为基数倒转该数后 判断转化为 10进制 后还是不是素数 如果都满足 就输出Ye
  • [数值计算-19]:万能的任意函数的数值求导数方法

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 120378620 目录 第1章 前言
  • C++ inline内联函数详解

    函数是一个可以重复使用的代码块 CPU 会一条一条地挨着执行其中的代码 CPU 在执行主调函数代码时如果遇到了被调函数 主调函数就会暂停 CPU 转而执行被调函数的代码 被调函数执行完毕后再返回到主调函数 主调函数根据刚才的状态继续往下执行
  • for循环2(python)

    在python中 for循环的功能更加强大 对于可迭代对象的遍历更加的方便 可迭代对象 字符串 列表 元组等可以通过下标来访问元素的数据类型 同时这种数据类型也可以使用切片 例如我们遍历一个字符串 str hello for i in st
  • python时间序列动图_Python绘制时间序列数据的时序图、自相关图和偏自相关图

    时序图 自相关图和偏相关图是判断时间序列数据是否平稳的重要依据 本文涉及的扩展库numpy pandas statsmodels一般可以使用pip进行在线安装 如果安装失败 可以到http www lfd uci edu gohlke py
  • Java 基本命名规则

    一 项目名称 所有单词全部用小写 如 testjavaproject studentmanagement等 二 Java project中相关命名 1 包名 包名统一使用小写 点分隔符之间有且仅有一个自然语义的英语单词 用域名反过来写 不会
  • 关于uni-app课程开发的一心一得

    在当今互联网和移动互联网的时代 APP成为了人们生活和工作中不可或缺的一部分 而对于开发者来说 如何快速 高效 跨平台地开发一款APP也成为了关注焦点 而Uni App就是一种可以快速开发跨平台APP的方式 通过一套代码可以同时发布到多个平
  • Python3《机器学习实战》学习笔记(四):朴素贝叶斯实战篇之新浪新闻分类

    一 朴素贝叶斯改进之拉普拉斯平滑 上篇文章提到过 算法存在一定的问题 需要进行改进 那么需要改进的地方在哪里呢 利用贝叶斯分类器对文档进行分类时 要计算多个概率的乘积以获得文档属于某个类别的概率 即计算p w0 1 p w1 1 p w2
  • cocos2d-html5 碰撞检测的几种方法

    游戏中的碰撞还是比较多的 比如角色与角色的碰撞 角色与墙壁的碰撞 角色与怪物的碰撞等 都需要 进行碰撞的检测 来触发一定的事件 最近在尝试制作一个小游戏的时候需要用到碰撞检测 然后就查了下资料 并在论坛进行提问等算是找到了比较满意的碰撞检测
  • 大白话用Transformer做Object Detection

    作者 张恒 单位 法国国家信息与自动化研究所 研究方向 目标检测 传感器融合 记录一下隔离期间学习的 DETR 1 系列文章 追求简单 清晰 易懂 分上下两部分 上篇介绍 DETR 的基本原理 下篇是针对 DETR 缺点的改进工作 大白话
  • Android动态权限申请框架

    XmPermissions 项目介绍 Android动态权限申请框架 Github地址 https github com lhm0603 XmPermissionsProject 使用说明 XmPermissions 支持 Android
  • 2020年蓝桥杯

    专栏 蓝桥杯题目 目录 一 门牌制作 二 跑步锻炼 三 蛇形填数 四 排序 五 寻找2020 六 成绩统计 七 单词分析 八 数字三角形 九 平面切分 一 门牌制作 题目描述 小蓝要为一条街的住户制作门牌号 这条街一共有2020 位住户 门
  • 【NLP】第 1 章 : 语言模型简介

    使人不同于地球上其他动物物种的最大发展之一是语言的进化 这使我们能够交流和交流想法和思想 从而导致包括互联网在内的许多科学发现 这就是语言的重要性 因此 当我们涉足人工智能领域 时 除非我们确保机器能够理解和理解自然语言 否则在那里取得的进
  • 【linux】Grok Debugger本地安装过程

    1 概述 转载 https blog 51cto com fengwan 1758845 最近在使用ELK对日志进行集中管理 因为涉及到日志的规则经常要用到http grokdebug herokuapp com 进行调试 但是因为国内网络
  • nacos配置中心将原来的配置读取到配置中心并且应用

    将模块的所有配置放到配置中心里去 刚才说了那么多 我们可以将数值储存在配置中心 及时调用 那么我们是否可以将我们之前的配置放到配置中心里呢 let s go 我们当前的配值如下 spring datasource username root
  • thymeleaf固定前端信息的循环次数

    thymeleaf固定前端信息的循环次数 div class part body div
  • ajax 禁止跨域,AJAX_解决AJAX中跨域访问出现''没有权限''的错误,禁止访问非同域的网站,下面一 - phpStudy...

    解决AJAX中跨域访问出现 没有权限 的错误 禁止访问非同域的网站 下面一个例子来访问http www google cn function createobj if window ActiveXObject return new Acti