美文网首页
ajax跨域访问

ajax跨域访问

作者: 夏_至 | 来源:发表于2016-12-09 15:04 被阅读27次

首先明确一下跨域:

怎样才能算跨域?协议,域名,端口都必须相同,才算在同一个域。

之前有见过ajax跨域一种方式,JSONP,不过看了以后感觉并不好用
比较一下json与jsonp格式的区别:

json格式:
{ "message":"获取成功", "state":"1", "result":{"name":"工作组1","id":1,"description":"11"}}
jsonp格式:
callback({ "message":"获取成功", "state":"1", "result":{"name":"工作组1","id":1,"description":"11"}})

需要后台获取数据的地方再做一次处理,不够理想,而且处理数据会麻烦一点,并且JSONP不提供错误处理。如果动态插入的代码正常运行,你可以得到返回,但是如果失败了,那么什么都不会发生。

后面找到一种比较合理的调用方式:在header中加入 Access-Control-Allow-Origin: * ,可以实现ajax同域名一样的调用效果,例如在rails项目中只需要在action的after_fileter中加入一句
<pre>response.header['Access-Control-Allow-Origin'] = '*'</pre>

不过考虑到安全性还是尽量不要写*的好,比如我想实现指定domain下可以调用则可以写成:
<pre>
response.header['Access-Control-Allow-Origin'] = request.env["HTTP_ORIGIN"] if request.env["HTTP_ORIGIN"].to_s.end_with?('.xxxx.com')
</pre>

相关文章

  • SpringMVC 进行ajax跨域请求访问

    关于 springmvc 3.x 版本对ajax跨域请求访问 ajax 请求后,浏览器出现跨域的问题那么在当前环境...

  • 跨域问题

    加入@CrossOrigin注解, 即可将api允许跨域访问. 注意: 当前端使用ajax方式发起跨域请求时,如:...

  • ajax跨域访问

    首先明确一下跨域: 怎样才能算跨域?协议,域名,端口都必须相同,才算在同一个域。 之前有见过ajax跨域一种方式,...

  • Ajax全接触(五) 处理跨域方式

    那么什么是跨域呢? 处理跨域方式-代理 我们在前端代码中将ajax访问后台url改成http://127.0.0....

  • 解决ajax跨域问题

    Jsonp解决ajax跨域问题 CORS解决ajax跨域问题

  • ajax跨域

    解决 js ajax跨域访问报“No 'Access-Control-Allow-Origin' header i...

  • jQuery笔记

    Ajax跨域访问 dataType设置为"jsonp" jsonp设置为"jsonpCallback"该参数是用于...

  • ajax跨域请求,自定义回调方法名defined。我就呵呵了。

    之前说了,ajax的jsonp跨域请求,返回的是json格式。用了雅虎的YQL才能正确访问,-----$.ajax...

  • 复习jsonp和promise

    一.jsonp 1.jsonp是跨域访问api,ajax不能跨域 2.在vue中使用jsonp首先要安装jsonp...

  • 前端跨域

    什么是ajax跨域 ajax跨域的原理 ajax出现请求跨域错误问题,主要原因就是因为浏览器的“同源策略”,可以参...

网友评论

      本文标题:ajax跨域访问

      本文链接:https://www.haomeiwen.com/subject/kbozpttx.html