首页
社区
课程
招聘
[求助]jQuery的JSONP跨域请求及其回调函数问题
发表于: 2014-3-5 17:20 1444

[求助]jQuery的JSONP跨域请求及其回调函数问题

2014-3-5 17:20
1444
最近对javascript感兴趣,尤其是jQuery框架.
我特别困惑的就是JSONP的回调函数.
像这样的请求:318K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4S2^5P5q4)9J5k6h3y4G2L8g2)9J5c8Y4q4#2k6i4y4&6i4K6y4r3i4@1f1#2i4K6S2r3i4K6R3J5i4@1f1$3i4K6V1#2i4@1t1H3x3g2)9K6c8s2S2^5P5q4)9J5y4X3y4S2L8r3I4T1j5h3y4C8i4K6y4p5P5s2S2^5P5s2S2^5P5q4!0q4y4g2)9^5y4#2!0n7c8q4!0q4y4W2)9&6y4g2!0n7x3q4!0q4y4g2)9&6x3q4)9^5c8l9`.`.
这样的GET请求,JQuery可以随机生成函数名,服务器能响应,为什么?
服务器的响应数据:
jQuery164015615330513046433_1394007405745({'success':true,'msg':'XX'}
前面那个就是jQuery随机生成的函数名.但是我自己构造的HTTP请求随意填写callback的值,为什么服务器就不响应?(其他参数值保证正常)服务器不会返回任何数据,我感觉太奇怪了,哪位大大能帮帮我解答问题?
我查阅了多本书,书基本没讲明白.....

-------------------------------------------
以下是我的过程,不知道是否有问题.
我在一网站看到手机短信验证注册的功能,我就想自己能不能构造数据让服务器
发送SMS信息.
这是我捕获到的HTTP包:
方式:GET----注:原网址:85dK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6Z5i4K6u0W2x3e0j5K6i4K6u0W2j5$3!0E0i4K6u0r3M7X3g2Y4i4K6u0r3i4K6u0W2i4K6u0W2i4K6u0W2i4K6u0W2i4K6u0W2i4@1f1$3i4K6V1^5i4@1u0q4i4@1f1%4i4K6R3@1i4@1t1$3i4@1f1$3i4K6V1^5i4@1q4r3i4@1f1^5i4@1t1%4i4@1p5^5i4@1f1#2i4K6W2r3i4K6W2r3i4@1f1^5i4@1q4r3i4@1t1%4i4@1f1$3i4@1t1I4i4K6R3J5i4@1f1@1i4@1u0m8i4K6R3$3
请求的URL是67fK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6W2j5Y4g2J5M7#2)9J5k6h3E0#2i4K6u0W2x3e0j5K6i4K6u0W2j5$3!0E0i4K6u0r3M7i4g2A6j5$3E0d9k6h3N6Q4x3V1k6K6k6h3&6V1e0h3!0T1K9h3I4W2b7$3q4H3N6r3y4Z5j5g2)9K6c8Y4m8J5L8$3#2S2M7X3E0Q4x3@1c8I4k6i4m8#2M7$3H3@1y4g2)9J5y4X3W2V1i4K6y4p5L8Y4g2D9L8q4)9J5y4X3!0#2N6s2m8#2N6q4)9K6c8r3A6K6L8$3&6Q4x3U0k6E0i4K6g2X3N6i4y4W2M7X3&6S2L8h3g2Q4x3@1b7I4z5o6M7&6y4K6f1J5x3e0M7J5x3#2)9J5y4X3y4S2L8r3I4T1j5h3y4C8i4K6y4p5K9W2q4#2k6i4u0&6x3e0j5@1x3o6p5#2y4U0p5#2x3K6x3H3y4e0p5K6x3o6b7$3y4o6x3K6i4K6g2X3x3e0x3&6y4o6l9H3y4K6b7H3y4e0M7@1y4W2)9J5y4W2)9#2k6W2)9K6c8o6p5K6z5e0b7H3x3o6R3K6x3U0M7$3x3K6l9`.
请求头部:
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: 518K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6Z5i4K6u0W2x3e0j5K6i4K6u0W2j5$3!0E0i4K6u0r3M7X3g2Y4i4K6u0r3
Connection: keep-alive

原来的请求源代码

function (a, b, c) {--参数a=sendMobileCaptcha
        $.ajax({
            type: 'get',
            async: !1,
            url: (/^(submit|regMobile)$/.test(a) ? '150K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6J5k6h3N6Q4x3X3g2F1K9h3g2Q4x3X3f1I4y4U0y4Q4x3X3g2U0L8$3#2Q4x3V1k6%4k6h3u0Q4x3V1k6I4N6h3W2U0K9#2)9J5c8W2)9J5y4H3`.`. : 'd14K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6W2j5Y4g2J5M7#2)9J5k6h3E0#2i4K6u0W2x3e0j5K6i4K6u0W2j5$3!0E0i4K6u0r3M7i4g2A6j5$3E0d9k6h3N6Q4x3V1k6Q4x3U0N6Q4x3U0V1`. + 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
网上也搜索了很久,还是找不到确切的答案....

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回