正常啊,jsonp 回传的数据格式(假设回调函数叫做 callback)本来就是 callback({"name":"foo"}) ,里面的参数并不是字符串形式哦。
而 ajax 传数据的时候,服务端需要对数据按 json 格式序列化,再传递,到客户端当然需要 parse 了,这个很多 xhr 的库都提供自动 parse 的功能的,比如 jquery.ajax 是设置 dataType 为 json。
updated
你们后端说不支持 jsonp,是意思不支持跨域还是不支持 jsonp 的方式跨域,这一点很重要。
如果后端的意思是,不支持 jsonp 的方式,但是支持 cors,那就比较简单了,现在一般主流的 xhr 库都会自动设置关于 cors 的请求头的,就不细说了。
如果后端的意思是,不支持跨域,但如果你本地有在使用 devserver,不论是 webpack-dev-server 还是 express-dev-server,只有在 devserver 中配置 proxy 并增加 rewrite 规则即可,开启 proxy 有多种方式,有用 middleware 的,有传参数的,各种工程体系是不同的,不过配置成功以后,由于服务端不存在同源策略的限制,所以也就无所谓跨域不跨域了。