Heim  >  Artikel  >  Backend-Entwicklung  >  js向php发送post请求失败,求解

js向php发送post请求失败,求解

WBOY
WBOYOriginal
2016-06-23 13:46:412307Durchsuche

function alertWin(title, msg, w, h) {         var titleheight = "22px"; // 窗口标题高度         var bordercolor = "#666699"; //窗口的边框颜色         var titlecolor = "#FFFFFF"; // 窗口的标题颜色         var titlebgcolor = "#666699"; // 窗口的标题背景色         var bgcolor = "#FFFFFF"; // 内容背景色         var iWidth = document.documentElement.clientWidth; //这个窗口的宽度         var iHeight = document.documentElement.clientHeight; //这个窗口的高度         //创建一个弹出层         var msgObj = document.createElement("div");         //设置弹出的层的样式         msgObj.style.cssText = "position:absolute;font:11px '宋体';top:" + (iHeight - h) / 2 + "px;left:" + (iWidth - w) / 2 + "px;width:" + w + "px;height:" + h + "px;text-align:center;border:1px solid " + bordercolor + ";background-color:" + bgcolor + ";padding:1px;line-height:22px;z-index:1001;";         document.body.appendChild(msgObj);         //创建一个table用于容纳层上的内容         var table = document.createElement("table");         //将Table放到弹出层上         msgObj.appendChild(table);         //设置table的格式         table.style.cssText = "margin:0px;border:0px;padding:0px;";         table.cellSpacing = 0;         //插入一行用于显示标题         var tr = table.insertRow(-1);         //插入一个单元格用于容纳标题         var titleBar = tr.insertCell(-1);         titleBar.style.cssText = "width:100%;height:" + titleheight + "px;text-align:left;padding:3px;margin:0px;font:bold 13px '宋体';color:" + titlecolor + ";border:1px solid " + bordercolor + ";cursor:move;background-color:" + titlebgcolor;         titleBar.style.paddingLeft = "10px";         //设置标题         titleBar.innerHTML = title;         //关闭按钮事件         var closeBtn = tr.insertCell(-1);         closeBtn.style.cssText = "cursor:pointer; text-align:right;padding:2px;background-color:" + titlebgcolor;         closeBtn.innerHTML = "<span style='font-size:15pt;color:" + titlecolor + ";'>&times;</span>";         closeBtn.onclick = function() {             document.body.removeChild(msgObj);         }         //弹出的消息窗口内容         var msgBox = table.insertRow(-1).insertCell(-1);         msgBox.style.cssText = "font:10pt '宋体';";         msgBox.colSpan = 2;         msgBox.innerHTML = msg;         var nameBox1 = table.insertRow(-1);         var nameLable1 = nameBox1.insertCell(-1);         nameLable1.style.cssText = "font:10pt '宋体';text-align:center;";         nameLable1.innerHTML = "<tr><td align=\"right\">手机</td><td><input id=\"mobile\" name=\"mobile\" type=\"text\" size=\"15\" class=\"inputBg\" /><span style=\"color:#FF0000\"> *</span> <input id=\"zphone\" type=\"button\" value=\" 获取手机验证码 \" onClick=\"get_mobile_code();\"></td></tr>"; 				var nameBox2 = table.insertRow(-1);         var nameLable2 = nameBox2.insertCell(-1);         nameLable2.style.cssText = "font:10pt '宋体';text-align:center;";         nameLable2.innerHTML = "<tr><td align=\"right\">验证码</td><td><input type=\"text\" size=\"6\" name=\"mobile_code\" class=\"inputBg\" /></td></tr>";         		var nameBox3 = table.insertRow(-1);         var nameLable3 = nameBox3.insertCell(-1);         nameLable3.style.cssText = "font:10pt '宋体';text-align:center;";         nameLable3.innerHTML = "<tr><td align=\"right\"></td><td><input type=\"submit\" value=\" 注册 \" class=\"button\"></td></tr>"; 	}	function get_mobile_code(){		alert("111");		$.post('http://'+serverIp+'smsExecute.php', {mobile:jQuery.trim($('#mobile').val()),send_code:<?php echo $_SESSION['send_code'];?>}, function(msg) {            alert(jQuery.trim(unescape(msg)));        });        alert("222");	}


回复讨论(解决方案)

55行之前的代码,效果如下:

然后点击44行的“获取手机验证码”按钮,能够触发57行的get_mobile_code函数,111跟222都能弹出,但是.post没有反应。

报什么错呢,就你现在这些信息出问题可能性太多了

看看有没有session_start()  再有就是大括号里面传值实际上键值要用引号的

页面右键查看源代码看看你那些变量有没有正确解析

看看有没有session_start()  再有就是大括号里面传值实际上键值要用引号的


-------------------------------------------------------------------------------------------------------------
session_start()是有的。加了引号也没效果:{"mobile":jQuery.trim($('#mobile').val()),"send_code":}

send_code:''}

确认 jQuery 加载无误

1.firebug有什么错误提示?
2.firebug network 看看post后返回的内容。


看看有没有session_start()  再有就是大括号里面传值实际上键值要用引号的


-------------------------------------------------------------------------------------------------------------
session_start()是有的。加了引号也没效果:{"mobile":jQuery.trim($('#mobile').val()),"send_code":}
你在右键查看源码的时候那个php脚本正确解析了吗?这个很关键

send_code:''}

确认 jQuery 加载无误


----------------------------------------------------------------------
您好,顺便再请教个问题,比如我在a.php中使用了$_SESSION['send_code']=‘123456’,那么在b.php中可以直接使用$_SESSION['send_code']吗?还是需要像post一样在a.php中指定b.php?

是的,可以直接使用
但有个前提:一定要有 session_start(); 语句

是的,可以直接使用
但有个前提:一定要有 session_start(); 语句


-------------------------------------------------------------------------
那$_SESSION['send_code']这个值会一直存在吗?

不会,关闭浏览器或关闭了与该网站相关的标签页后,就没有了

发现自己走进了死胡同~~~

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:数字四舍五入的问题Nächster Artikel:php+mysql+js拖拽div实例