jsonp跨域请求

在开发过程中,跨域请求数据是很常见的操作,一般我们会用jsonp来解决(还有其他技术,目前还不会。)

那么什么是跨域?

常见跨域场景:

URL                                      说明                    是否允许通信
http://www.domain.com/a.js
http://www.domain.com/b.js         同一域名,不同文件或路径           允许
http://www.domain.com/lab/c.js

http://www.domain.com:8000/a.js
http://www.domain.com/b.js         同一域名,不同端口                不允许
 
http://www.domain.com/a.js
https://www.domain.com/b.js        同一域名,不同协议                不允许
 
http://www.domain.com/a.js
http://192.168.4.12/b.js           域名和域名对应相同ip              不允许
 
http://www.domain.com/a.js
http://x.domain.com/b.js           主域相同,子域不同                不允许
http://domain.com/c.js
 
http://www.domain1.com/a.js
http://www.domain2.com/b.js        不同域名                         不允许



json和jsonp的区别:

1.json返回一串数据,jsonp返回脚本代码(包含一个函数调用)
2.jsonp只支持get请求,没有post

用法:
就是很普通的ajax格式:
 1 $.ajax({
 2 dataType: "jsonp",    //看这里~
 3 crossDomain: true,
 4 url: xxxxxxxxxxxxxxxxxx,
 5 scriptCharset:"UTF-8",
 6 jsonpCallback : 'xxxxxx',  //自定义回调函数名 ,默认jquery自动生成
 7 timeout: xxxxxxxxx,
 8 success: function(xxx) {
 9 
10     xxxxxxxx
11 
12 },
13 
14 error: function(zzz) {
15     zzzzzzzzz
16 }
17 });
 













原文地址:https://www.cnblogs.com/guojia314/p/9751211.html