-
-
[求助]jQuery的JSONP跨域请求及其回调函数问题
-
发表于: 2014-3-5 17:20 1253
-
最近对javascript感兴趣,尤其是jQuery框架.
我特别困惑的就是JSONP的回调函数.
像这样的请求:www.xxx.com/quesy?参数1=xxx&callback=xxxxxxx函数名
这样的GET请求,JQuery可以随机生成函数名,服务器能响应,为什么?
服务器的响应数据:
jQuery164015615330513046433_1394007405745({'success':true,'msg':'XX'}
前面那个就是jQuery随机生成的函数名.但是我自己构造的HTTP请求随意填写callback的值,为什么服务器就不响应?(其他参数值保证正常)服务器不会返回任何数据,我感觉太奇怪了,哪位大大能帮帮我解答问题?
我查阅了多本书,书基本没讲明白.....
-------------------------------------------
以下是我的过程,不知道是否有问题.
我在一网站看到手机短信验证注册的功能,我就想自己能不能构造数据让服务器
发送SMS信息.
这是我捕获到的HTTP包:
方式:GET----注:原网址:http://wh.163.com/reg/.....显然是跨域请求了
请求的URL是http://weburs.ku.163.com/quickReg/sendMobileCaptcha?promark=qepusl45&id=null&output=json&m_username=18797521723&callback=jQuery164015615330513046433_1394007405746&_=1394008327630
请求头部:
Host: weburs.ku.163.com
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
Accept: */*
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://wh.163.com/reg/
Connection: keep-alive
原来的请求源代码
function (a, b, c) {--参数a=sendMobileCaptcha
$.ajax({
type: 'get',
async: !1,
url: (/^(submit|regMobile)$/.test(a) ? 'https://reg.nie.163.com/web/quick/' : 'http://weburs.ku.163.com/quickReg/') + a + '?' + z($.extend({
promark: A,
id: E,
output: 'json'
}, b)),--此处b为函数,简单处理字符串生成m_username=18797521723
dataType: 'jsonp',
success: function (a) {
c(a)
}
})
},
看源代码附加的data就只有:
promark=qepusl45
id=null
output=json
m_username=18797521723
至于
callback=jQuery164015615330513046433_1394007405746--随机回调函数名
_=1394008327630
这个是什么就不清楚了:_=1394008327630
网上也搜索了很久,还是找不到确切的答案....
我特别困惑的就是JSONP的回调函数.
像这样的请求:www.xxx.com/quesy?参数1=xxx&callback=xxxxxxx函数名
这样的GET请求,JQuery可以随机生成函数名,服务器能响应,为什么?
服务器的响应数据:
jQuery164015615330513046433_1394007405745({'success':true,'msg':'XX'}
前面那个就是jQuery随机生成的函数名.但是我自己构造的HTTP请求随意填写callback的值,为什么服务器就不响应?(其他参数值保证正常)服务器不会返回任何数据,我感觉太奇怪了,哪位大大能帮帮我解答问题?
我查阅了多本书,书基本没讲明白.....
-------------------------------------------
以下是我的过程,不知道是否有问题.
我在一网站看到手机短信验证注册的功能,我就想自己能不能构造数据让服务器
发送SMS信息.
这是我捕获到的HTTP包:
方式:GET----注:原网址:http://wh.163.com/reg/.....显然是跨域请求了
请求的URL是http://weburs.ku.163.com/quickReg/sendMobileCaptcha?promark=qepusl45&id=null&output=json&m_username=18797521723&callback=jQuery164015615330513046433_1394007405746&_=1394008327630
请求头部:
Host: weburs.ku.163.com
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0
Accept: */*
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://wh.163.com/reg/
Connection: keep-alive
原来的请求源代码
function (a, b, c) {--参数a=sendMobileCaptcha
$.ajax({
type: 'get',
async: !1,
url: (/^(submit|regMobile)$/.test(a) ? 'https://reg.nie.163.com/web/quick/' : 'http://weburs.ku.163.com/quickReg/') + a + '?' + z($.extend({
promark: A,
id: E,
output: 'json'
}, b)),--此处b为函数,简单处理字符串生成m_username=18797521723
dataType: 'jsonp',
success: function (a) {
c(a)
}
})
},
看源代码附加的data就只有:
promark=qepusl45
id=null
output=json
m_username=18797521723
至于
callback=jQuery164015615330513046433_1394007405746--随机回调函数名
_=1394008327630
这个是什么就不清楚了:_=1394008327630
网上也搜索了很久,还是找不到确切的答案....
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法
赞赏
他的文章
- [原创]C++正则表达式引擎设计与实现(core) 10842
- [原创]强扩展性IP代理 python开源 8089
- [原创]python IP代理--开源 16720
看原图
赞赏
雪币:
留言: