我有一个可以返回数据的PHP Web服务(如果我将url输入浏览器,我会得到结果)。我需要使用Javascript从我的Web服务中检索这些数据,但是我对Javascript不太了解。根据我读过的所有教程,示例和StackOverflow问题和答案,这应该有效,但事实并非如此。请帮助!
<script type="text/javascript">
var url = '*working url*';
var xmlhttp = null;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
else if (window.ActiveXObject) { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
else { document.write('Perhaps your browser does not support xmlhttprequests?'); }
xmlhttp.open('GET', url, true);
xmlhttp.send(null);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var myObj = eval ( xmlhttp.responseText );
} else {
// wait for the call to complete
}
};
</script>
另外,我需要帮助确保我正确地调用它。目前我这样做,这可能是问题所在:
<script type="text/javascript">
document.write(myObj);
</script>
答案 0 :(得分:1)
我知道这并没有直接回答你的问题,但如果你对javascript“不太好”,我建议你直接使用jQuery而不是搞乱低级别的对象。
它还可以帮助您实现跨浏览器兼容性。
http://jquery.com/
http://api.jquery.com/category/ajax/
然而,如果你将来有一段特别无聊的日子,那么回去学习幕后发生的事情总是有益的。
这将是一个使用jQuery(带文本响应)的简单ajax帖子:
$.post(
"test.php",
{ postValue1: "hello",
postValue2: "world!" },
function(data){
alert("Success: " + data);
},
"text");
此代码是从jQuery的网站借用和修改的:
http://api.jquery.com/jQuery.post/
我从中获取了函数参数信息:
http://api.jquery.com/jQuery.ajax/
// Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
var jqxhr = $.post("example.php", function() {
alert("success");
})
.success(function(data, textStatus, jqXHR) { alert("second success"); })
.error(function(jqXHR, textStatus, errorThrown) { alert("error"); })
.complete(function(jqXHR, textStatus) { alert("complete"); });