JSONP跨域请求数据报错 “Unexpected token :”的解决办法

在使用ajax请求的时候,遇到跨域的问题,一般解决办法有三种:

1. 使用代理;

2. 使用jsonp

3. 资源共享

这里,我使用了jsonp,由于第一次使用,这里遇到报错 “Uncaught SyntaxError: Unexpected token :”,主要问题在于返回的数据格式不正确。

正确的ajax使用jsonp的方式:

var restUrl = 'http://localhost:8080/analysis';
var clipResult1 = '';
var clipResult2 = '';
$.ajax({
    type: "POST",
    url: restUrl,
    dataType: 'jsonp',
    jsonp: 'callback',
    jsonpCallback: 'success_jsonpCallback',
    data: {
        result1:clipResult1,
        result2:clipResult2,
        f: 'pjson'

    },
    success: function (success) {
        var datas = JSON.stringify(success);
        for(d in success){
            var b = success[d];
            var c = b;
        }
    },
    error:function(){

    }
    });
但是一直不知道java后端怎么返回,最后终于明白。

System.out.println("jsonStr" + jsonStr);
return  "success_jsonpCallback(" + jsonStr+ ");" ;

这里只要是要对回调函数理解。



你可能感兴趣的:(JavaScript+前端开发)