jQuery的AJAX跨域请求的实现:
这边文章写得很好:
http://justcoding.iteye.com/blog/1366102
阅读jQuery的源码可知,用设置 dataType: "jsonp"进行跨域请求时,jQuery会判断请求的域是否和页面属于同域,如果同源,则不通过script标签获取跨域数据,n为false,如下图:
如果是跨域,n为true,进入if语句里面,创建script标签,并设置charset编码属性值为:scriptCharset。
有关跨域的原理请看上面地址的文章,看jQuery源码可知jquery的跨域请求底层也是通过script标签获取跨域数据。
在项目开发中发现一个问题:如果跨域请求的数据是和设置的scriptCharset设置的编码格式不同,且又和页面编码格式不同会有乱码问题:
我们项目中服务器返回的是GBK编码的数据,scriptCharset设置的是UTF-8,页面编码是GB2312,发现在IE7下会有乱码,其他IE版本及浏览器又正常。这个有点莫名其妙
再介绍一篇相关阅读,里面有网络分析工具Fiddler的使用及AJAX提交的编码的大致用法的介绍:
http://www.jb51.net/article/24097.htm