关于使用XHR的问题
Questions about using XHR
我是使用XMLHttpRequest对象的新手。我想做的是通过XMR打开一个php脚本,并将JavaScript值写入数据库。我不知道怎么做,所以这是我所拥有的。
JavaScript:function popup(username) {
var message = prompt("Message:","");
if(message != ""){
var req = new XMLHttpRequest();
req.open('POST','getmessage.php','false');
req.send("username=" + username +"&message="+message);
} else {
alert("Please enter a message");
}
}
PHP文件(getmessage.php):
<?php
$to = $_POST['username']
$message = $_POST['message'];
echo $to + ' ' + $message;
?>
PHP脚本将做更多的事情,但我只想先回显这些值,以确保它们确实在那里。但事实并非如此。的想法吗?
change req.open('POST','file:///getmessage.php','false');
to req.open('POST','getmessage.php',false);
还需要将req.send(username, message);
更改为
req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
req.send("username=" + username +"&message="+message);
reg。发送不刷新你的页面,它张贴你的数据到url和返回的数据是在请求。responseText或request。responseXML取决于您的数据类型。如果你想看到你的回复,请这样做
function popup(username) {
var message = prompt("Message:","");
if(message != ""){
var req = new XMLHttpRequest();
req.open('POST','getmessage.php','false');
req.send("username=" + username +"&message="+message);
alert(req.responseText);
} else {
alert("Please enter a message");
}
}
正如Jules在他的示例代码中所示,您需要从Javascript输出req.responseText
,以便它执行任何操作;HTTP响应不会在窗口中绘制任何内容,它只是将输出放在Javascript变量中供您操作和/或按照您想要的方式显示。您可以弹出它作为一个简单测试的警报。
如果您想尝试直接将响应写入文档,简单/懒惰的方法是在原始页面的标记中放置一个占位符div。在完成req.send(stuff_to_send);
之后,您只需执行类似document.getElementById('myDiv').innerHTML = req.responseText;
的操作。
在这种特殊情况下应该没有什么区别,但请注意:通常,使用==和!=来测试空字符串是危险的。在Javascript中,uninitialized
, undefined
, null
, NaN
("非数字"的保留词)和"(空字符串)是不同的值,如果你不太小心,那么很容易忘记可能导致未定义或空变量的情况,因为它们中的大多数直观地感觉它们应该返回空字符串或0。由于Javascript非常松散的类型转换,这可能会变得更有问题。如果不小心,您可能会将0
或false
这样的术语类型转换为字符串,然后这两个术语都将计算为true
。Undefined
, NaN
,空字符串和null
在作为布尔值处理时都计算为false
,但在使用等价运算符(==
和!=
)时,它们都被视为不同的。
如果你想确保一个字符串有一个非空的值,也不是未定义的,null等,你会想要测试变量作为一个布尔值,然后比较它的空字符串:
if(myString && myString != "")
另一个方便的解决方法是Javascript只是简单愚蠢的另一种情况:如果你试图引用一个你从未声明过的变量名,它会导致一个致命的错误,并完全停止Javascript的执行。另一方面,如果您试图引用已声明的对象的从未声明的属性,它将返回未定义,但不会抛出错误并停止脚本执行。由于您可以通过引用window.varName
来访问任何全局变量varName
(换句话说:作为window
对象的属性),因此只需在对可能不存在的变量的任何引用前面添加window.
,就可以使该引用安全。
- 在指令控制器中使用$attrs时出现问题
- 将PHP变量传递给jQuery时遇到问题
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 参数变量出现ngTable指令问题
- 剑道网格jQuery动画()问题
- 我的jQuery插件参数没有正确启动,遇到了问题
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- TableExport jquery插件:文件名和扩展名问题
- JavaScript Pub/Sub属性访问问题
- JavaScript异步问题
- 如何解决Yii中的页面刷新问题
- Safari(Mac OS)上的jQuery平滑滚动问题
- jqGrid树网格问题
- 使用 xhr 请求 Google Place API 遇到了 CORS 问题
- 尽管Access Control Allow Origin标头存在问题,但跨域XHR失败
- XHR可能存在哪些问题
- Xhr 上传事件加载问题
- 同源策略如何解决XHR、cookie和跨页面通信的问题
- 关于使用XHR的问题
- OBJLoader出现异步问题-等待XHR完成加载