关于ajax的跨域

这个问题是关于ajax跨域访问的

首先:本地file下js

var localPath="http://192.168.100.161:8080";

$(function(){
           var uuid="28293c941a3a322d9d9049a48a1045a2";
           var userCategoryType=3
           var c_url=localPath+"/api4/xclass/getTreeNode?uuid="+uuid+"&userCategoryType="+userCategoryType;

           //注意下面只需一个问号
           $.getJSON(c_url, function(data){
                document.write(data)
           });  

    })

然后服务器代码是

@RequestMapping(value="getTreeNode", method = RequestMethod.GET)
    @ResponseBody
    public Object getTreeNode(String uuid,Integer userCategoryType,HttpServletResponse response){
        User user=userService.getUserByMd5UserId(uuid);
        response.addHeader("Access-Control-Allow-Origin", "*");
        List<Map<String, Object>> userDocCategorys=mUserCategoryService.getUserDocCategorys(Long.parseLong(String.valueOf(user.getUserId())), userCategoryType);
        List<Map<String, Object>> ztreeNodes=new ArrayList<Map<String,Object>>();
        for (Map<String, Object> userCategory : userDocCategorys) {
            Map<String, Object> ztreeNodeMap = new HashMap<String, Object>();
            ztreeNodeMap = new HashMap<String, Object>();
            ztreeNodeMap.put("id",userCategory.get("user_category_id") );
            ztreeNodeMap.put("pId", userCategory.get("parent_id"));
            ztreeNodeMap.put("name", userCategory.get("user_category_name"));
            ztreeNodes.add(ztreeNodeMap);
        }
        return ztreeNodes;
    }

死活没法请求到,然后百度了下,发现是js的跨域,找了几个方法都不成功,包括jsonp等,最后
消息头中加入
  response.addHeader("Access-Control-Allow-Origin", "*");

很久没记笔记了,养成好习惯,加油

时间: 2024-08-30 01:28:54

关于ajax的跨域的相关文章

AJAX及其跨域的主要解决方法

AJAX = Asynchronous JavaScript andXML(异步的 JavaScript 和 XML).通过在后台与服务器进行少量数据交换,使网页实现异步更新.要明白异步交互可以通过同步和异步的对比很容易明白: 同步交互,就是最常见的click-refresh模式,点一个连接或提交一个表单,然后就必须重载整个页面 异步交互,javascript根据返回的数据,不刷新页面而改变当前页面的显示,例如:新浪微博,百度地图. Ajax的异步交互从XMLHttpRequest这个对象开始,

JQuery+ajax+jsonp 跨域访问

Jsonp(JSON with Padding)是资料格式 json 的一种“使用模式”,可以让网页从别的网域获取资料. 关于Jsonp更详细的资料请参考http://baike.baidu.com/view/2131174.htm,下面给出例子: 一.客户端 Html代码   <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.

AJAX的跨域与JSONP

AJAX的跨域与JSONP 什么是AJAX的跨域请求 出于安全的考虑,如果你要从www.a.com通过Ajax来请求另外一个网站www.b.com的内容,浏览器是不允许你这样做的(不理解这里的安全是指什么?想想如果没有这个限制的话,黑客可以做些什么).那什么样的情况下算是跨域?域名不同那当然算是跨域了,例如a.com向b.com发送请求,这当然就是跨域了,不允许的.不过子域名不同(例如sub.a.com向www.a.com发送请求)甚至是同域名不同端口(例如a.com:80向a.com:8080

解决Ajax不能跨域的方法

1.  Ajax不能跨域请求的原因 同源策略(Same Origin Policy),是一种约定,该约定阻止当前脚本获取或者操作另一个域下的内容.所有支持Javascript的浏览器都支持同源策略,也就是说浏览器可以隔离来自不同源的内容,阻止跨域请求的发生. 2. 解决方法 (1) CORS 在被请求的脚本中使用header()函数设置http响应,从而使得跨域请求能够发生: header(“Access-Control-Allow-Origin:*”); 这一方法称为CORS(Cross-Or

关于AJAX的跨域问题

最近过年的这几天在做毕业设计的时候遇到了一个关于AJAX的跨域问题,本来我是想要用一下聚合数据平台提供的天气预报的接口的,然后做一个当地的天气情况展示,但是在使用AJAX的时候,被告知出现错误了. 这是由于浏览器的同源策略引起的,那么什么是同源策略呢,同源策略就是在不同域下请求另一个页面中的数据时,这是不被允许的.也就是会出现上面的问题. 那么什么是不同域呢.一个域名地址的组成有以下几个部分:协议.子域名.主域名.端口号.请求资源地址. 例如:http://www.abc.com:8080/se

AJAX POST&amp;跨域 解决方案 - CORS

跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的内容),因为我们在日常的项目开发时会不可避免的需要进行跨域操作,所以跨域能力也算是前端工程师的基本功之一. 和大多数跨域的解决方案一样,JSONP也是我的选择,可是某天PM的需求变了,某功能需要改成支持POST,因为传输的数据量比较大,GET形式搞不定.所以折腾了下闻名已久的CORS(跨域资源共享,Cross-Origin Resource

ASP.Net WebAPI与Ajax进行跨域数据交互时Cookies数据的传递

前言 最近公司项目进行架构调整,由原来的三层架构改进升级到微服务架构(准确的说是服务化,还没完全做到微的程度,颗粒度没那么细),遵循RESTFull规范,使前后端完全分离,实现大前端思想.由于是初次尝试,中途也遇到了不少问题.今天就来讨论一下其中之一的问题,WebAPI与前端Ajax 进行跨域数据交互时,由于都在不同的二级域名下(一级域名相同),导致Cookies数据无法获取. 最开始通过头部(Header)将Cookies传输到其WebAPI,也能解决问题. 下面讲述另外一种解决方案. 解决过

jquery ajax jsonp跨域调用实例代码

今天研究了AJAX使用JSONP进行跨域调用的方法,发现使用GET方式和POST方式都可以进行跨域调用,这里简单分享下,方便需要的朋友 客户端代码 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApp.WebForm1" %><!DOCTYPE html P

JavaScript(10)——Ajax以及跨域处理

Ajax以及跨域处理 哈哈哈,终于写到最后一章了.不过也还没有结束,说,不要为了学习而学习,恩.我是为了好好学习而学习呀.哈哈哈.正在尝试爱上代码,虽然有一丢丢的难,不过,我相信我会的! [Ajax] Ajax技术的核心是XMLHttpRequest对象(简称HXR).Ajax通信与数据格式无关,这种技术就是无须刷新页面即可从服务器取得数据,但不一定是XML数据. [XMLHttpRequest对象] IE5是第一款引入XHR对象的浏览器.XHR对象是通过MSXML库中的一个ActiveX对象实

ASP.NET MVC &amp; WebApi 中实现Cors来让Ajax可以跨域访问 (转载)

什么是Cors? CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing).它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制.本文详细介绍CORS的内部机制. 一.简介 CORS需要浏览器和服务器同时支持.目前,所有浏览器都支持该功能,IE浏览器不能低于IE10. 整个CORS通信过程,都是浏览器自动完成,不需要用户参与.对于开发者来说,CORS通信与同源的AJAX通信没有差别,代