
Ajax不能跨域,比如您是,您就不能请求的文件。但您可以请求、ent.baidu.com/1.json。这是因为安全原因,对于任何后台语言来说、服务器程序来说,所有的XHR类型的请求,如果来自其他的服务器,将不予应答。
一、使用jsonp
JSONP就像是JSON+Padding一样(Padding这里我们理解为调用函数时的填充)。win7 安装apache phpwin7 安装apache php

绿色部分是JSON,外面的fun();是函数的调用,是padding补充部分。
jsonp的原理很简单,就是把定义写在了HTML源文件里面,而将调用放在script标签引用的文件里面,由于script标签可以跨文件使用,这样就实现了跨域,引用的文件可以有各种格式php 、js、txt等。
下面举个例子:

jsonp.txt里面的内容如下:
运行结果:

由于这样使用起来不方便,我们可以将它封装成一个实用轮子:

jQuery已经有封装好的API可以直接使用:名称是ajax()
可以查看jQuery手册,参考如下

二、使用PHP偷数据
几乎每种后台语言都可以实现该功能,以下是PHP的示例:
其中,header是设置返回到浏览器中的头文件的字符集和文件类型

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持梦搏网络。
JavaScript用JSONP跨域请求数据实例详解
[9077]
前言
最近因为工作需要,需要把爱词霸的每日一句引入到页面上,爱词霸向外开放了 API, 接口返回 json 数据,为了让页面更轻巧,我没有用 jQuery,而是直接纯 js 写了一段代码:
运行之后数据并没有获取到,而是出现了如下错误提示:
这就是跨域请求的问题。那么什么是跨域请求呢?浏览器出于安全方面的考虑,采用同源策略(Same origin Policy),即只允许与同域下的接互。
同域是指:
同协议:如都是 http 或者 https
同域名:如都是 或
同端口:如都是 80 端口
也就是说,用户打开了页面: , 当前页面下的 js 向 的接口发数据请求,浏览器是允许的。但假如向: 发数据请求则会被浏览器阻止掉,因为存在跨域调用。
跨域请求的解决办法就是 JSONP(JSON with Padding) . HTML 中 script 标签可以加载其他域下的 js, JSONP 就是通过 script 标签加载数据的方式去获取数据当做 JS 代码来执行,然后再用一个回调函数抽取数据:
再查查资料,发现有人做了封装:
如果你使用的是 jQuery,则可以直接用 ajax 请求数据:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
参考资料
75669.htm
https://zhuanlan.zhihu.com/p/22600501
详解PHP中pathinfo()函数导致的安全问题
[9037]
定义和用法
pathinfo() 函数以数组或字符串的形式返回关于文件路径的信息。
返回的数组元素如下:
[dirname]:返回文件路径中的目录部分
[basename]:返回文件路径中文件名的部分

[extension]:返回文件路径中文件的类型的部分
语法
pathinfo(path,options)
参数
path: 必需。规定要检查的路径。
options 可选。规定要返回的数组元素。默认是 all。
可能的值:
PATHINFO_DIRNAME - 只返回 dirname
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-87997-1.html
然后就宣布十二海里领海权
那就是雄赳赳气昂昂