首页
学习
活动
专区
圈层
工具
发布

ajax跨域问题-web开发必会

ajax跨域问题 跨域 同源策略限制 同源策略阻止从一个域上加载的脚本获取或操作另一个域上的文档属性。也就是说,受到请求的 URL 的域必须与当前 Web 页面的域相同。...跨域请求 刚才是HTML文件和php文件都在Apache的容器下,所以没有出现跨域的情形,现在把HTML文件放到桌面上,这样再次请求PHP数据的话,就营造了这样一个“跨域请求”了。...---- jsonp方式 JSONP(JSON with Padding) 灵感其实源于在HTML页面中script标签内容的加载,对于script的src属性对应的内容,浏览器总是会对其进行加载。...于是: 克服该限制更理想方法是在 Web 页面中插入动态脚本元素,该页面源指向其他域中的服务 URL 并且在自身脚本中获取数据。脚本加载时它开始执行。...该方法是可行的,因为同源策略不阻止动态脚本插入,并且将脚本看作是从提供 Web 页面的域上加载的。但如果该脚本尝试从另一个域上加载文档,就不会成功。

2K60

jQuery Mobile中jQuery.mobile.changePage方法使用详解

jQuery.mobile.changePage方法用的还是很多的。作为一个老手,有必要对jQuery mobile中实用方法做一些总结。...使用pagecontainer部件的change()法代替。 注意该方法是在内部使用的页面加载和转换作为一个结果,点击一个链接或提交表单时。...默认情况下,changepage()忽略请求改变当前的活动页面。设置为true,允许请求执行。注意的一些页面转换到另一个页面(changepage请求的页和页是不同的),他们可能不会如预期的动画。...设置为true时地址栏中的Hash更新会创建一个新的浏览器历史记录的影响。设置为false,传入的页面在浏览器历史替换当前页面,用户导航无法通过浏览器的“后退”按钮回到上一个页面。...强制刷新页面, 即使当页面容器中的dom元素已经准备好时,也强制刷新。只在changePage()的to参数是一个可用地址的时候。 reverse:布尔类型,默认false。

2.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JQuery 入门学习(三)

    但是运用ajax,用户点击链接后,不打开新页面,而由javascript在后台向服务器获取结果,然后用一个提示框弹出提示用户,用户在这个过程中还可以继续填写表单,两个过程互不影响。...甚至我们做一个网站,放上背景音乐,网站中一切链接都由ajax完成(比如点击了一片文章,ajax向服务器请求文章内容,然后用我上次说的Jquery html操作将网页中的一部分进行修改,这样文章就放入了页面而并不刷新页面...首先看看怎么获取服务器上一个txt文件:使用load()方法     (因为ajax使用同源策略,所以在哪个网站运行代码就只能请求该服务器上的内容,我请求的是w3school中的一个txt文件,大家把代码放在...并没有刷新页面,我们填写的内容依旧在表单中。这就是向服务器请求了html,返回的“用户名...已存在”就是一个html文本,最后体现在用户面前。     我们看Jquery代码。...在php5.2以上的版本,有了一对函数json_encode()和json_decode(),分别对php中对象进行json格式的编码和解码。     举个没什么营养的例子。

    9.8K20

    Ajax基础

    上节我们讲到了http的一些基础知识,这都是为了让我们在实践ajax实例时,更好的理解和调试接口。因此这节我们就进入实战部分。...(ps:其实在我工作当中,很少使用原生的写法去做ajax请求服务器接口,基本都是使用了框架,所以即使我们觉得原生写法太啰嗦或不理解也不要紧,jquery库已经帮我们做好了一切。)...弹出显示发送成功等); 在第三步中,readyState属性的变化代表了服务器响应的变化,有以下属性可以判断: 在第四步中,我们通过以下属性和方法获取从服务器返回来的数据: 我们以get方式请求为例...例子的实现目标: 需要两张页面: 这是php的页面,我简单解释一下: 首先是先新建了一个二维数组,然后$_SERVER["REQUEST_METHOD"]的作用就是用来获取从js中发送的请求方式,如果为...然后是html结构和显示的效果: 接下来,我们要实现我们要的效果:客户端通过点击查询和保存按钮,使用ajax异步的方式发送请求,后台接口响应到请求后返回json数据,最后客户端接收返回来的数据做相应处理

    74120

    基于Model Event模型事件的Laravel实时APP

    mv composer.phar /usr/local/bin/composer 新建一个空文件夹,在文件夹下,再使用composer安装Laravel项目: composer create-project...laravel/laravel mylaravelapp --prefer-dist 写一个TODO APP 写路由Route 在app/Http/routes.php中写上资源型路由: Route:...数据库配置主要在config/database.php和.env文件中,在.env文件中写上对应的host,database,user,password: DB_CONNECTION=mysql DB_HOST...了,我的在MAMP环境输入路由:http://laravelmodelevent.app:8888/,新开AB两个页面,然后在输入框里提交文本后: A页面输入后B页面只有刷新才能看到最新输入的文本...重点是:在A页面写入新文本,B页面不能实时显示。这还不是个实时APP。

    6.6K31

    JSONP原理及使用

    首先抛出浏览器同源策略这个概念,为了保证用户访问的安全,现代浏览器使用了同源策略,即不允许访问非同源的页面,详细的概念大家可以自行百度。...这里大家只要知道,在ajax中,不允许请求非同源的URL就可以了,比如www.a.com下的一个页面,其中的ajax请求是不允许访问www.b.com/c.php这样一个页面的。...JSONP具体实现 1.首先看下ajax中如果进行跨域请求会如何。 前端代码在域www.practice.com下面,使用ajax发送了一个跨域的get请求 <!...提示了不同源的URL禁止访问 2.下面使用JSONP,将前端代码中的ajax请求去掉,添加了一个script标签,标签的src指向了另一个域www.practice-zhao.com下的remote.js...4.最后jQuery提供了方便使用JSONP的方式,代码如下: <!

    99340

    使用Jsonp解决跨域数据访问问题

    Ajax同时也是目前众多的Mashup背后的驱动力量,他们都利用Ajax来聚合不同来源的信息。 理解同源策略的限制 同源策略是指阻止代码获得或者更改从另一个域名下获得的文件或者信息。...有一个很巧妙的办法就是在页面中使用动态代码元素,代码的源指向服务地址并在自己的代码中加载数据。当这些代码加载执行的时候,同源策略就不会起到限制。...同时jquery还对非跨域的请求进行了优化,如果这个请求是在同一个域名下 那么他就会像正常的Ajax请求一样工作。...上例中我们在动态插入到页面的代码中使用了静态的json数据,虽然完成了依次JSONP返回,但仍不是JSONP服务,因为不支持在URL中定义回调函数名称。...在页面文件中,我们使用JQuery的支持:         //JQuery JSONP Support         var url = "http://www.mydomain.com/api

    1.5K20

    中文参数乱码问题——js字符串编码

    jquery.get中文参数问题——js符串编码 摘要: 使用jquery.get进行ajax请求获取数据是很常见的操作,一般请求参数都为字母,今天发现在参数中使用中文会出现浏览器兼容性问题,现在记录如下...).html(result.lastChild.firstChild.nodeValue); },"xml"); 问题描述:   在firefox和chrome中功能正常,在sogou兼容模式(ie7...问题排除:   1、尝试直接打印出college参数用alert输出看看结果,firefox中能直接输出“材料学院”,在sogou兼容模式中就输出空白;   2、使用firebug查看get参数,url...cate=cla&require=ajax&q=all&college=%E6%9D%90%E6%96%99%E5%AD%A6%E9%99%,能返数据,一切正常,则可以确定是 问题解决:   使用encodeURI....,_,~,0-9,a-z,A-Z 因此,对于汉文字符串来说,假如不期望把字符串编码各式转化成UTF-8各式的(比如原页面和目的页面的charset是一致的时候),只需求应用 escape。

    5.6K10

    什么是跨域以及几种简单解决方案

    同源策略就是用来限制从一个源加载的文档或脚本与来自另一个源的资源进行交互。那怎样判断是否是同源呢? 如果协议,端口(如果指定了)和主机对于两个页面是相同的,则两个页面具有相同的源,也就是同源。...http://example.com/b.html ,很显然它们是不同源的,所以我们无法在父页面中操控子页面的内容。...都有读写的权限,window.name是持久存在一个窗口载入过的所有页面中的,并不会因新页面的载入而进行重置。...我们来看一个具体场景,在一个页面 example.com/a.html 中,我们想获取 data.com/data.html 中的数据,以下是解决方案: jQuery中用JSONP的话就更加简单了: $.getJSON(''http://example.com/data.php?callback=?'

    71410

    JavaWeb全栈开发前后端交互通用标准

    在接收服务器数据时一般是得到字符串,我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象。 JSON.parse()方法用于从一个字符串中解析出json对象。...然而,在以下情况中,请使用 POST 请求: 不使用缓存文件(更新服务器上的文件或数据库) 向服务器发送大量数据(POST 没有数据量限制) 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠...当前端在调用数据接口时,发现有些数据不是我们想要的,那么前端应该怎么办 把请求的URL和返回的数据以及在页面的展示的情况给后台看。...通过 AJAX,JavaScript 无需等待服务器的响应,而是: 在等待服务器响应时执行其他脚本 当响应就绪后对响应进行处理 Web的运作原理:一次HTTP请求对应一个页面。...例子:使用 .get() 方法从服务器上的一个文件中取回数据: /* $.get() 的第一个参数是我们希望请求的 URL("demo_test.asp")。 第二个参数是回调函数。

    8.6K20

    AngularJS的数据绑定功能展示

    在AJAX型的单页应用普及之前,类似Rails、PHP和JSP之类的平台都可以帮助我们创建用户界面(UI),它们会把HTML字符串和数据混合起来,然后再发送给用户并显示。...而jQuery之类的库则在客户端继承了这一模型,让我们遵守类似的风格,但是使用jQuery可以单独刷新DOM中的局部内容,而不是刷新整个页面。...在jQuery中,我们会把HTML模板字符串和数据混合起来,然后把获得的结果插入DOM中我们所期望的位置,插入的方式是把结果设置给一个占位符元素的innerHtml属性。...因为它可以和MVC很好地结合起来,所以我们把它引入到了Angular中。这样一来,当你编写视图和模型的时候,可以节省代码量。在UI中,把数据从一个值修改成另一个值的大部分工作会自动进行。...为了在实战中看到这一点,我们来修改第一个例子,让它变成动态的。目前的情况是,HelloController会给模型greeting.text赋一次值,之后再也不会修改它。

    1.5K80

    jQuery,和嵌入其中的Ajax

    jQuery库包含以下功能: HTML 元素选取 HTML 元素操作 CSS 操作 HTML 事件函数 JavaScript 特效和动画 HTML DOM 遍历和修改 AJAX Utilities jQuery...选取单选按钮 点击元素 jQuery 事件方法语法 在 jQuery 中,大多数 DOM 事件都有一个等效的jQuery 方法。...通过 jQuery AJAX 方法,您能够使用HTTP Get 和 HTTP Post 从远程服务器上请求文本、HTML、XML或JSON - 同时您能够把这些外部数据直接载入网页的被选元素中。...下面的例子使用 $.get() 方法从服务器上的一个文件中取回数据: 实例 $("button").click(function(){$.get("demo_test.php",function(data...然后我们连同请求(name 和 url)一起发送数据。 "demo_test_post.php"中的PHP 脚本读取这些参数,对它们进行处理,然后返回结果。 第三个参数是回调函数。

    4.2K20

    面试小知识

    请求 本地缓存 静态文件 服务器请求Web php mysql 响应页面内容 浏览器解析 渲染页面 AJAX的优势在哪里...答: ajax是异步传输技术,可以通过JavaScript实现,也可以通过Jquery实现,实现页面的局部刷新,减轻服务器的压力。 现在编程中常用MVC三层结构,请问三层结构指什么?有什么优点?...①trim()移除字符串两侧的空白字符和其他字符;   ②substr_replace()把字符串的一部分替换为另一个字符串;   ③substr_count()计算子串在字符串中出现的次数;   ...  ⑧strrchr()查找字符串在另一个字符串中最后一次出现;   ⑨strstr()查找字符串在另一字符串中的第一次出现(对大小写敏感);strrev()反转字符串;strlen()返回字符串的长度...()从一个字符串中去除HTML标签;mb_substr()用来截中文与英文的函数 PHP中处理时间的常用函数说一说?

    3.1K20

    给前端新人看的前端之路漫谈

    jQuery的语法设计可以使开发更加便捷,例如操作文档对象、选择DOM元素、制作动画效果、事件处理、使用Ajax以及其他功能。...以前我们数据传输的形式是直接把php代码写在HTML文件中,但AJAX的出现打破了这一僵局,使得前后端分离的更为彻底,因为只需要一个接口,前后端定下接口也就各干各事了。...先从一个小demo写起来,起码{}得有啊; json,接触了OOP,学会了AJAX那么现在就得学下json了,json是一种数据格式,在页面交互中,后端会把数据以json格式返回,前端用ajax拿到后,...我们口口声声宣称着要实现前后端分离(实际上这才是开发的终极目标),但在实际开发中往往不能分离,所以基本每一个前端都会学一门后台语言,比较热门的后台语言有:PHP,Java,Python,Node;PHP...《JavaScript DOM编程艺术》很通俗,适合入门; 《锋利的jquery》jquery入门书; 《PHP和MySQL web开发》这本是很多人PHP的入门书籍,经典程度不亚于高程; 《深入浅出nodeJS

    1.4K90

    异步编程Ajax的详解,并对其进行封装整理

    ('get', 'example.php', 'true') 光调用了 open() 方法还不够,它只是创建了一个请求,但还没有发送请求,因此我们还要调用xhr对象上的另一个方法,即 send() 方法...文章开头提到,JQuery早已对Ajax请求进行了成熟的封装,所以我们可以借鉴它,甚至尽可能地去模仿它进行封装,在这之前,我们得先了解JQuery中Ajax的使用 (1)JQuery中的Ajax 这里我找来了几段使用...对象有一定的兼容性,因此我们在封装ajax方法之前可以先封装一个方法用来动态创建一个兼容性稍微好点的XHR对象(其中主要是兼容IE5和IE6) 我们都知道JQuery都是将方法封装在一个名为 $ 的对象中的...方法 在JQuery中还有一个 ajax 方法,其既可以发送 get 请求,也可以发送 post 请求,该方法可传入多种参数,且支持 promise 处理回调函数 let $ = { createXHR...现在的大部分浏览器几乎都支持了在发送Ajax请求后,自动向请求头部添加当前的源信息 六、结束语 建议你们好好了解JS的Ajax的使用,这样在面试中问起来你还能说出个一二三,并且有时候面试官还会直接让你亲手写一个简单的

    2.2K20

    JQuery中Ajax功能的使用技巧二则

    (这里嵌套了一层AJAX操作) 第一个和第二个问题大概就是系统缓存的问题了。在IE选项里面把缓存禁用之后就一切正常了,但客户的客户端浏览器并不会如此设置,所以我们还必须在页面代码里面禁用缓存。...第三个问题则应该涉及到异步和同步的问题吧。 仔细研究了一下JQuery的AJAX部分,发现$.ajax()下有很多参数,其中async参数主要是用来设置是同步还是异步。...,也就是说这时候执行的是两个线程,ajax块发出请求后一个线程 和ajax块后面的脚本(另一个线程)。...第一个和第二个问题的解决方式也很简单,研究了JQuery的AJAX部分就知道里面有一个参数cache,专门是用来设置本次和服务器进行的传输是否加载缓存。...来做AJAX真的很方便,在以后的项目运用中我会用到它很多地方,AJAX中很多参数确实值得去研究...

    1.5K30
    领券