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

ajax跨域请求json数据

ajax跨域请求json数据 作者:matrix 被围观: 5,840 次 发布时间:2014-03-13 分类:零零星星 | 20 条评论 » 这是一个创建于 3094 天前的主题,其中的信息可能已经有所发展或是发生改变...刚开始仅仅想获取一个他域的json数据,没想到牵扯到很多的问题。...跨域问题的产生,最主要原因是COOKIE的安全问题。因为COOKIE是属于一个域的,如果允许跨域,客户端浏览器上储存的COOKIE就可以被它的所有者之外的程序访问到。...举个例子吧,假如没有跨域问题,我现在就可以给百度发送个HTTP请求,获取你在百度上登录的用户名。或者获取SessionID,直接冒充你的帐号登录。...利用jsonp跨域 要跨域必须要有回调函数的接口,这里用jsonp试试 接口 ajax.load( url, // 跨越请求的URL success, // 回调函数,必须定义一个形参,用于接收后台返回的全局变量

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

    【笔记】跨域重定向中使用Ajax(XHR请求)导致跨域失败

    】,保存数据,写法如下: $.ajax({ url: "//b.com/create", type: 'POST', data: requestParams, dataType...2、但是在测试环境中,测试人员直接打开了http://a.com页面,调用接口就变成为http://b.com/create,这里跨域预检时,b.com的Nginx反馈302跳转,报错。...分析: 1、readtState: 0说明请求没有发出去,被浏览器拦截了,可能情况有: url格式不对 跨域失败 参数错误 用户取消 其它... 2、这里应该是跨域失败的问题,因为报错是faild to...(XHR等),当跨域预检(Option请求)时,如果出现非20X等时,会直接失败,抛出readtState: 0 解决方法: 1、在Ajax中明确https协议,避免b.com预检时返回302 $.ajax...现在看来,对于简单请求,比如页面跳转、图片加载等确实是一个好的做法,但是对于后端接口请求这类,可能需要具体场景斟酌。这句话可以改为: 简单请求中不指定协议,使用//自动适配页面url的协议

    2.8K30

    React项目配置4(如何在开发时跨域获取api请求)

    1、React项目配置1(如何管理项目公共js方法)---2018.01.11 2、React项目配置2(自己封装Ajax)---2018.01.12 3、React项目配置3(如何管理项目API接口)...---2018.01.15 4、React项目配置4(如何在开发时跨域获取api请求)---2018.01.16 5、React项目配置5(引入MockJs,实现假接口开发)---2018.01.17...6、React项目配置6(前后端分离如何控制用户权限)---2018.01.18 7、React项目配置6(ES7的Async/Await的使用)---2018.01.19(新增) 开发环境:Windows...8,node v8.9.1,npm 5.5.1,WebStorm 2017.2.2 我们在开发时候,如果前后端不在同域下,即前后端分离,就会产生跨域的情况!...将来在发布的时候,在生产环境下,大概会有两种情况: 前后端不在同域下(JSONP,CORS,今天不讲) 前后端在同域下 我们今天要讲的是第二种情况,前后端在同域下,而开发时,不在同域下!

    2.7K50

    java后台设计简单的json数据接口,设置可跨域访问,前端ajax获取json数据

    在开发的过程中,有时候我们需要设计一个数据接口。有时候呢,数据接口和Web服务器又不在一起,所以就有跨域访问的问题。 第一步:简单的设计一个数据接口。...数据接口,听起来高大上,其实呢就是一个简单的Serlvlet,在有get的请求的时候,返回我们要提供的数据就可以。现在JSON数据格式已经很普遍,因为很方便,所以我们做一个json数据的接口。...现在如果我们在另外一台电脑上使用ajax, 来获取数据 $.ajax({ url:'http://localhost:8089/Data/servlet/message', method...0表示请求根本没有建立。这是因为,另一个电脑和我的数据接口 不在一个服务器上,当然,如果你在自己的电脑上写ajax也不可以,必须写到项目里,才可以访问。所以,跨域问题必须要解决。...response = (HttpServletResponse) resp; response.setHeader("Access-Control-Allow-Origin", "*"); //解决跨域访问报错

    4.2K70

    前端架构师之01_JavaScript_Ajax

    注意:如果请求声明为同步,该方法将会等待请求完成或者超时才会返回,否则此方法将立即返回。 在进行Ajax开发时,经常使用GET方式或POST方式发送请求。 GET方式适合从服务器获取数据。...获取响应信息:responseText属性、responseXML属性等 当请求服务器成功且数据接收完成时,可以使用Ajax对象提供的相关属性获取服务器的响应信息。...与XML对比:使用JSON对象访问属性的方式获取数据更加方便,在JavaScript中可以轻松地在JSON字符串与对象之间转换。 JSON格式的数据交互实现。...5 跨域请求 5.1 Ajax跨域问题 域(Domain)是指网络中独立运行的单位。...A网站 -> 利用Ajax读取用户在B网站中的余额 -> B网站 A网站 Ajax向A网站发送修改密码的请求 <- B网站 跨域请求会导致网页失去安全性,因此浏览器阻止跨域请求。

    1.2K10

    Web基础知识

    注意:如果请求声明为同步,该方法将会等待请求完成或者超时才会返回,否则此方法将立即返回。 在进行Ajax开发时,经常使用GET方式或POST方式发送请求。 GET方式适合从服务器获取数据。...获取响应信息:responseText属性、responseXML属性等 当请求服务器成功且数据接收完成时,可以使用Ajax对象提供的相关属性获取服务器的响应信息。...与XML对比:使用JSON对象访问属性的方式获取数据更加方便,在JavaScript中可以轻松地在JSON字符串与对象之间转换。 JSON格式的数据交互实现。...5 跨域请求 5.1 Ajax跨域问题 域(Domain)是指网络中独立运行的单位。...A网站 -> 利用Ajax读取用户在B网站中的余额 -> B网站 A网站 Ajax向A网站发送修改密码的请求 <- B网站 跨域请求会导致网页失去安全性,因此浏览器阻止跨域请求。

    1.9K10

    全面分析前端的网络请求方式

    Ajax全称 AsynchronousJavaScript+XML(异步 JavaScript和 XML) 使用 Ajax,网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面。...withCredentials ajax请求默认会携带同源请求的 cookie,而跨域请求则不会携带 cookie,设置 xhr的 withCredentials的属性为 true将允许携带跨域 cookie...注意:在远程请求时(不在同一个域下),所有 POST 请求都将转为 GET 请求。(因为将使用 DOM 的 script标签来加载)"json": 返回 JSON 数据 。"...当网络故障时或请求被阻止时,才会标记为 reject,如跨域、 url不存在,网络异常等会触发 onerror。 所以使用fetch当接收到异常状态码都是会进入then而不是catch。...相反,它会将 Promise 状态标记为 resolve (但是会将 resolve 的返回值的 ok 属性设置为 false ),仅当网络故障时或请求被阻止时,才会标记为 reject。

    2.6K40

    【安全】899- 前端安全之同源策略、CSRF 和 CORS

    如果你说 SOP 就是“限制非同源资源的获取”,这不对,最简单的例子是引用图片、css、js 文件等资源的时候就允许跨域。...下面是 3 个在实际应用中会遇到的例子: 使用 ajax 请求其他跨域 API,最常见的情况,前端新手噩梦 iframe 与父页面交流(如 DOM 或变量的获取),出现率比较低,而且解决方法也好懂 对跨域图片...绕过跨域的方案由于篇幅所限,并且网上也很多相关文章,所以不在这里展开解决跨域的方案,只给出几个关键词: 对于 ajax 使用 JSONP 后端进行 CORS 配置 后端反向代理 使用 WebSocket...SOP 与 ajax 对于 ajax 请求,在获得数据之后你能肆意进行 js 操作。这时候虽然同源策略会阻止响应,但依然会发出请求。因为执行响应拦截的是浏览器而不是后端程序。...CORS 与 cookie 与同域不同,用于跨域的 CORS 请求默认不发送 Cookie 和 HTTP 认证信息,前后端都要在配置中设定请求时带上 cookie。

    1.8K10

    Ajax,jQuery ajax,axios和fetch介绍、区别以及优缺点

    1-5 提交表单和上传文件 XMLHttpRequest 的实例有两种方式提交表单: 1 使用 Ajax 2 使用 FormData API 使用 FormData API 是最简单最快捷的,但是缺点是被收集的数据无法使用...拦截请求和响应 转换请求数据和响应数据 取消请求 自动转换 JSON 数据 客户端支持防御 XSRF XSRF(Cross Site Request Forgery, 跨站域请求伪造)也称 XSRF,...相反,它会将 Promise 状态标记为 resolve (但是会将 resolve 的返回值的 ok 属性设置为 false ),仅当网络故障时或请求被阻止时,才会标记为 reject。...怎么也比不上的能力:跨域的处理 我们都知道因为同源策略的问题,浏览器的请求是可能随便跨域的——一定要有跨域头或者借助JSONP,但是,fetch中可以设置mode为"no-cors"(不跨域),如下所示...需要指出的是,这个请求是真正抵达过后台的,所以我们可以使用这种方法来进行信息上报,在我们之前的image.src方法中多出了一种选择,另外,我们在network中可以看到这个请求后台设置跨域头之后的实际返回

    3.1K62

    什么是跨域及怎么解决跨域问题?

    浏览器执行javascript脚本时,会检查这个脚本属于哪个页面,如果不是同源页面,就不会被执行。 跨域会阻止什么操作?...浏览器是从两个方面去做这个同源策略的,一是针对接口的请求,二是针对Dom的查询 1.阻止接口请求比较好理解,比如用ajax从http://192.168.100.150:8020/实验/jsonp.html...dom 浏览器的这个限制虽然不能保证完全安全,但是会增加攻击的困难性 虽然安全机制挺好,可以抵御坏人入侵,但有时我们自己需要跨域请求接口数据或者操作自己的dom,也被浏览器阻止了,所以就需要跨域 跨域的前提肯定是你和服务器是一伙的...只不过是可以跨域了 这里针对ajax与jsonp的异同再做一些补充说明: 1、ajax和jsonp这两种技术在调用方式上”看起来”很像,目的也一样,都是请求一个url,然后把服务器返回的数据进行处理,因此...比如在a界面修改内容,点击保存后b页面的表格自动刷新就可以使用这个。或者子iframe做了事件,父在跨域的情况下无法获取子的事件,但通过消息传递就可以间接获取到事件。

    14.4K13

    请简述跨域的几种方式

    如果你当前 A网站还存在登录态,那么对方就可以通过 Ajax获得你的任何信息。当然跨域并不能完全阻止CSRF。 *然后我们来考虑一个问题,请求跨域了,那么请求到底发出去没有?...因为归根结底,跨域是为了阻止用户读取到另一个域名下的内容,Ajax 可以获取响应,浏览器认为这不安全,所以拦截了响应。但是表单并不会获取新的内容,所以可以发起跨域请求。...虽然设置 CORS 和前端没什么关系,但是通过这种方式解决跨域问题的话,会在发送请求时出现两种情况,分别为 简单请求和复杂请求。 简单请求 - 直接携带数据发出。...以 Ajax 为例,当满足以下条件时,会触发简单请求 使用下列方法之一: GET HEAD POST Content-Type 的值仅限于下列三者之一: text/plain multipart/form-data...对于复杂请求来说,首先会发起一个预检请求,该请求是 option 方法的,通过该请求来知道服务端是否允许跨域请求(option请求仅关心是否跨域/是否请求头被允许)。

    76620

    ajax 跨域,这应该是最全的解决方案了

    它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。...然而就算是我来分析,也只会根据对应的表现来判断是否是跨域,因此这一点是很重要的。 ajax请求时,如果存在跨域现象,并且没有进行解决,会有如下表现。...(实际中不推荐使用),这里做简单介绍(实际项目中如果要使用JSONP,一般会使用JQ等对JSONP进行了封装的类库来进行ajax请求) 实现原理 JSONP之所以能够用来解决跨域方案,主要是因为 脚本拥有跨域能力...作为参数的JSON数据被视为JavaScript对象,而不是字符串,因此避免了使用JSON.parse的步骤。...使用注意 基于JSONP的实现原理,所以JSONP只能是“GET”请求,不能进行较为复杂的POST和其它请求,所以遇到那种情况,就得参考下面的CORS解决跨域了(所以如今它也基本被淘汰了) CORS解决跨域问题

    1.6K50

    springmvc【问题1】跨域

    问题介绍:什么是跨域 简单的说即为浏览器限制访问A站点下的js代码对B站点下的url进行ajax请求。...现代浏览器默认都会基于安全原因而阻止跨域的ajax请求,这是现代浏览器中必备的功能,但是往往给开发带来不便。特别是对我这样后台开发人员来讲,这个事情简直神奇。...哪怕在移动端也有各种Hybird方案,在本地文件系统的Web页面,也有需要获取外部数据的需求,而这些需求也必然是跨域的。...在寻找跨域解决方案时,发现了最优雅解决方案就是HTML5来带了的“Cross-Origin Resource Sharing”的新特性,来赋予开发者权力决定资源是否允许被跨域访问。..."Access-Control-Max-Age"表明在3628800秒内,不需要再发送预检验请求,可以缓存该结果(上面的资料上我们知道CROS协议中,一个AJAX请求被分成了第一步的OPTION预检测请求和正式请求

    1.2K20

    同源策略与CORS跨域

    为什么form表单提交没有跨域问题,但ajax提交有跨域问题? - 方应杭的回答 - 知乎 因为原页面用 form 提交到另一个域名之后,原页面的脚本无法获取新页面中的内容。所以浏览器认为这是安全的。...CORS 跨域 除了用jsonp之外,可以用CORS 下面我们用两个网站来模拟Ajax跨域并且解决跨域问题 先写前端的Ajax请求代码 let myButton = document.getElementById...ajax请求因为跨域问题没有发送成功!...成功 CORS 可以告诉浏览器,我俩一家的,别阻止他 CORS的意思 突破同源策略 === 跨域 Cross-Origin Resource Sharing 跨域(源,站)资源共享 总结 CORS相对于...:8001') 这句话是跨域(突破同源策略)的核心,即允许别的网站(例如http://mataotao.com:8001)跨域向我发请求,并且允许响应 Ajax总结 什么是Ajax?

    1.5K20

    ajax跨域,这应该是最全的解决方案了

    它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。...ajax请求时,如果存在跨域现象,并且没有进行解决,会有如下表现:(注意,是ajax请求,请不要说为什么http请求可以,而ajax不行,因为ajax是伴随着跨域的,所以仅仅是http请求ok是不行的)...(实际中不推荐使用),这里做简单介绍(实际项目中如果要使用JSONP,一般会使用JQ等对JSONP进行了封装的类库来进行ajax请求) 实现原理 JSONP之所以能够用来解决跨域方案,主要是因为 脚本拥有跨域能力...作为参数的JSON数据被视为JavaScript对象,而不是字符串,因此避免了使用JSON.parse的步骤。...使用注意 基于JSONP的实现原理,所以JSONP只能是“GET”请求,不能进行较为复杂的POST和其它请求,所以遇到那种情况,就得参考下面的CORS解决跨域了(所以如今它也基本被淘汰了) CORS解决跨域问题

    2.1K70

    你知道 XHR 和 Fetch 的区别吗?

    通过 XMLHttpRequest 可以在不刷新页面的情况下请求特定 URL,获取数据。XMLHttpRequest 在 AJAX 编程中(比如 jquery)被大量使用。...AJAX :异步 JavaScript 和 XML。许多人容易把它和 jq 的 ajax 混淆。它是一个技术统称,本身不是一种技术。...特点 异步请求:XHR 允许进行异步请求,它可以在后台执行,而不会阻止页面的其他操作。 支持跨域请求:通过服务器端设置允许跨域请求,从不同域的服务器获取数据。...默认不接受跨域请求:为了安全性,Fetch API 默认不接受跨域请求,但可以通过 CORS(跨域资源共享)来进行配置。...跨域请求: Fetch 在跨域请求方面更灵活,支持 CORS。 流式传输: Fetch 支持可读流,适用于大文件下载。 维护性: Fetch 更容易维护和扩展。

    2.7K11

    【JS】1942- 你知道 XHR 和 Fetch 的区别吗?

    通过 XMLHttpRequest 可以在不刷新页面的情况下请求特定 URL,获取数据。XMLHttpRequest 在 AJAX 编程中(比如 jquery)被大量使用。...AJAX :异步 JavaScript 和 XML。许多人容易把它和 jq 的 ajax 混淆。它是一个技术统称,本身不是一种技术。...特点 异步请求:XHR 允许进行异步请求,它可以在后台执行,而不会阻止页面的其他操作。 支持跨域请求:通过服务器端设置允许跨域请求,从不同域的服务器获取数据。...默认不接受跨域请求:为了安全性,Fetch API 默认不接受跨域请求,但可以通过 CORS(跨域资源共享)来进行配置。...跨域请求: Fetch 在跨域请求方面更灵活,支持 CORS。 流式传输: Fetch 支持可读流,适用于大文件下载。 维护性: Fetch 更容易维护和扩展。

    1.2K10
    领券