jsonp使用中遇到的问题 Uncaught SyntaxError: Unexpected token :

以前直接用jQuery的$.ajax({dataType:"jsonp"})方法做跨域请求,没有深入研究why和how。直到最近遇到了如下问题:一个jsonp请求发送成功,数据也返回来了,但是直接进入了$.ajax()的error方法,报错为

 Uncaught SyntaxError: Unexpected token :

百度了一上午,把这个问题搞清楚了。

1.jsonp的原理

浏览器安全策略等等的就按下不表,简要的说就是一个标签可以不受浏览器同源策略的限制,它可以去请求不同域上的js文件。




    
    Title
    




这是页面上引入js文件的方法。像这样引入一个remote.js文件,当这个文件下载好后会立即执行里面的代码。这样,对代码进行一下修改:




    
    Title
    
    
    //remote.js 内容:jsonpCallback({"data_number":"123"})




当remote.js下载好后,会立即执行jsonpCallback({"data_number":"123"}),而这个函数定义在上一个

你可能感兴趣的:(jsonp使用中遇到的问题 Uncaught SyntaxError: Unexpected token :)