在使用 JSONP 进行跨域请求的时候,可能会遇到一个很苦恼的问题,那就是明明服务器返回的 JSON 数据格式没有任何问题,可为什么就是会报错呢????就是下面这货:
Uncaught SyntaxError: Unexpected token :
原因很简单,可以理解为其实 JSONP 要的是一个封装 JSON 数据......想要了解更多 JSON 和 JSONP 的知识戳这里:【原创】说说JSON和JSONP,也许你会豁然开朗,含jQuery用例
众所周知,JSON 数据是长这个样子的:
{
"name": "data"
}
但是 JSONP 要的是一个封装的 JSON 数据,它是长这个样子的:
func({
"name": "data"
})
区别就在于需要一个函数名和一个括号来将 JSON 数据封装起来,有同样问题的小伙伴不妨试试。