时间:2021-07-01 10:21:17 帮助过:4人阅读
$(document).ready(function() { $("#submit").click(function(){ username = 1233; password = 1233; valc = 1233; //password = hex_md5(hex_md5(password)+valc); //password = hex_md5(password + valc); var data = new Object(); data.j_username=username; data.j_password=password; data.j_valcode=valc; alert(password); $.ajax({ url : 'http://127.0.0.1/test/simulation.php', type : "post", dataType : "jsonp", jsonp : "jsonp", data:data, }) })});
1、jsonp 其实就是跨域的json,json如何访问,jsonp就如何访问
2、为什么要改成错误的url?研究这个没啥用吧?
你先去了解一下 jsonp 是怎么工作的
如果你是知道的话,那么你应该知道客户端实际是与下面等价的代码
即包含远程js代码没有跨域问题,但参数是按 get 方式传递的
php 必须返回一个有效的 js 语句,如
data = {....}
data = [....]
func({....})
func([....])
现在比较常用的是返回一个函数调用语句,函数名就是 url 参数中的回调函数名
js post json格式的数据
1、jsonp 其实就是跨域的json,json如何访问,jsonp就如何访问
2、为什么要改成错误的url?研究这个没啥用吧?
你先去了解一下 jsonp 是怎么工作的
如果你是知道的话,那么你应该知道客户端实际是与下面等价的代码
即包含远程js代码没有跨域问题,但参数是按 get 方式传递的
php 必须返回一个有效的 js 语句,如
data = {....}
data = [....]
func({....})
func([....])
现在比较常用的是返回一个函数调用语句,函数名就是 url 参数中的回调函数名
这是所有代码
文件名为simulation.js和simulation.php
function hex_md5(pass) { var mergePas=pass+"{1#2$3%4(5)6@7!poeeww$3%4(5)djjkkldss}"; return binl2hex(core_md5(arr2binl(str2binl(mergePas)),32)); } function core_md5(x, len) { var a = 1732584193; var b = -271733879; var c = -1732584194; var d = 271733878; for (var i=0;i> 16) + (y >> 16) + (lsw >> 16); return (msw << 16) | (lsw & 0xFFFF); } function rol(num, cnt) { return (num << cnt) | (num >>> (32 - cnt)); } function str2binl(str) { var len=str.length; var arr=new Array(len); for(var i=0;i > 5] = (bin[i >> 5]) | ((str.charCodeAt(i/strsize) & mask) << i%32); // i = i+strsize; // } // return bin; } function binl2hex(binarray){ var hex_tab = "0123456789abcdef"; var str = ""; for(var i = 0; i < binarray.length * 4; i++) { str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) + hex_tab.charAt((binarray[i>>2] >> ((i%4)*8)) & 0xF); } return str; } function arr2binl(arr){ var nblk = ((arr.length + 8) >> 6) + 1 ; var blks = new Array(nblk * 16); for(var i = 0; i < nblk * 16; i++) blks[i] = 0; for(var j = 0; j < arr.length; j++) blks[j>>2] |= (arr[j] & 0xFF) << ((j%4) * 8); blks[j>>2] |= 0x80 << ((j%4) * 8); blks[nblk*16-2] = arr.length * 8; return blks; }/////////////////////////////////////////////////////////////////////// ////自制代码段///////////////////////////////////////////////////////////////////////// /* var ppp; ppp = hex_md5('1111'); var lac='3384'; alert (typeof lac); alert(ppp); alert(hex_md5(ppp+lac));*/$(document).ready(function() { $("#submit").click(function(){ username = $("#username").val(); password = $("#password").val(); valc = $("#valc").val(); password = hex_md5(hex_md5(password)+valc); //password = hex_md5(password + valc); var data = new Object(); data.j_username=username; data.j_password=password; data.j_valcode=valc; alert(password); $.ajax({ url : './simulation.php', type : "post", dataType : "jsonp", jsonp : "jsonp", data:data, }) })});
登陆
jsonp是返回的格式,不是Post过去的数据格式。跨域才会用到jsonp。
Ajax里Post过去的数据,PHP里怎么接收其它页面的Post数据,这个也一样。
如果 ajax 没有定义回调函数,那么你在 php 中输出的东西就看不到了
如果 ajax 没有定义回调函数,那么你在 php 中输出的东西就看不到了
js post json格式的数据
jsonp是返回的格式,不是Post过去的数据格式。跨域才会用到jsonp。
Ajax里Post过去的数据,PHP里怎么接收其它页面的Post数据,这个也一样。
不是接受不到数据,而是你看不到 php 打印的内容
$.ajax({ url : './simulation.php', type : "post", dataType : "jsonp", jsonp : "jsonp", data:data, })改写为
$.ajax({ url : './simulation.php', type : "post", data:data, success : function(d) { alert(d); } })
不是接受不到数据,而是你看不到 php 打印的内容
$.ajax({ url : './simulation.php', type : "post", dataType : "jsonp", jsonp : "jsonp", data:data, })改写为
$.ajax({ url : './simulation.php', type : "post", data:data, success : function(d) { alert(d); } })
$(document).ready(function() { $("#submit").click(function(){ username = '1111'; password = '2222'; valc = '3333'; var data = new Object(); data.j_username=username; data.j_password=password; data.j_valcode=valc; alert(password); $.ajax({ url : 'simulation.php', type : "post", data:data, success : function(d) { alert(d); } }) })});
登陆
那段 js 改一下
$(document).ready(function() {
$("#submit").click(function(){
$.ajax({
url : 'simulation.php',
type : "post",
data: {username:"1111", password:'2222',valc:'3333'},
success : function(d) {
alert(d);
}
})
})
});
那段 js 改一下
$(document).ready(function() {
$("#submit").click(function(){
$.ajax({
url : 'simulation.php',
type : "post",
data: {username:"1111", password:'2222',valc:'3333'},
success : function(d) {
alert(d);
}
})
})
});
当然!
似乎我没有忽悠你的必要吧?
那段 js 改一下
$(document).ready(function() {
$("#submit").click(function(){
$.ajax({
url : 'simulation.php',
type : "post",
data: {username:"1111", password:'2222',valc:'3333'},
success : function(d) {
alert(d);
}
})
})
});
当然!
似乎我没有忽悠你的必要吧?
学会用chorme的开发者工具,对于Ajax的调试很方便实用。