关于ajax中报错Uncaught SyntaxError: Unexpected token :

时间:2025-05-11 21:25:01
在分布式项目中经常会出现ajax的跨域,而我们一般常用的时在ajax的方法中设置或者从服务端去设置。

    首先来说下这两种方法的正常设计规则。

第一种在ajax中做操作:
$.ajax({
        type:"get",
        dataType:"jsonp",
        url:user_post+"/user/findProperty/"+uid,
        success:function(){
        }
});

第二种在服务器中做操作:

             ("Access-Control-Allow-Origin","*");   
	     ("Access-Control-Allow-Methods","GET"); //方法根据自己的方式定义
	    

其中的dataType即为jsonp的类型,也就是服务器向客户端发送的值应为jsonp格式,但是如果我们在服务器返回一个实体bean对象的时候就会出现一个报错叫Uncaught SyntaxError: Unexpected token :       对于这个问题开始我的解决方案是考虑后台配置

@ResponseBody注解,然后的然后就是不管用,依然报错依旧。

好,既然还不行那我就用第二种吧。然而之前的错误情况解决了却又出现了另外一种

No 'Access-Control-Allow-Headers' header is present on the requested resource. Origin 'http://localhost:9991' is therefore not allowed access.

这就让我无语了,这出了一个又来一个啊。本人自知技术不熟练,也不能这么玩吧。没办法只能继续修改了。根据错误提示,是缺失头信息。然后我们需要配置缺失的信息。经过查找众多文章与实验。最后加上了下面代码后立马成功

 ("Access-Control-Allow-Headers","x-requested-with,content-type"); 

个人认为之所以jsonp失败是因为服务器返回的值跟jsonp的格式有冲突,jsonp中每个值都应该是字符串类型,而我的不是。

只能说自己才疏学浅了。


本文纯属个人意见,如有不对之处,还望指出。



处理 JSON 出现错误Uncaught SyntaxError: Unexpected token :