有没有办法从典型的 ajax 函数获取响应,以便可以用 getElements 对其进行剖析?我已经尝试过了query.responseText.getElementById,但效果和看起来一样糟糕。不过,您应该能够通过看到该片段来了解我想要实现的目标。我只需要从 ajax 响应中获取元素,就像获取普通 DOM 对象一样。
另外,请不要建议使用 jQuery。当我有很多脚本并且可以使用它的很多功能时,我会使用它,但在这种情况下,我只有一个简短的脚本和一个 70 倍大小的库,这似乎是一种浪费。
我手边有以下代码
var finalCompleteData = eval("("+"jsonresponse.responseText +")");
当我使用它时,我在Fortify中收到一个安全漏洞错误,说它可能导致Javascript Hacking.所以,我把它改成了
var finalCompleteData = window.json.parse(jsonresponse.responseText);
为此,Fortify没有显示错误.window.json.parse方法有什么作用?
你能解释一下吗?提前致谢 :-)
我有一个数据库表,其字段包含位置的纬度和经度坐标.我想使用数据库中的信息为Google Map视图创建标记.
我已经将查询函数作为
function getCords(){
$link = connectDB();
$query = "SELECT * FROM tour";
$results = mysqli_query($link, $query);
$jsonArray = array();
while ($row = mysqli_fetch_assoc($results)){
$jsonArray[] = array('fileName' => $row['FileName'], 'lat' => $row['Lat'], 'lon' => $row['Lon']);
}
return json_encode($jsonArray);
}
Run Code Online (Sandbox Code Playgroud)
当我从php页面调用此函数时,它返回通常的JSON格式.
我的问题是执行ajax查询.我在上面的php脚本文件中有查询功能,该文件包含六个左右的实用程序函数,用于控制登录,注销,注册等.为了通过jquery查询数据库,我试过了
var request = $.ajax({
type:"GET",
url: "includes/phpscripts.php?action=cords",
type: "json"
});
var response = request.responseText;
Run Code Online (Sandbox Code Playgroud)
我的问题是响应总是空的.这是由于URL的形成还是由于其他原因造成的?
我正在进行ajax调用,我从中获取内容responseText.
我通过使用alert内部确认,responseText包含整个页面作为string.
没关系.现在,我需要将其转换为DOM并使用提取从字符串具体内容getElementsByTagName,getElementsByName等...
我的问题是这些似乎都不起作用.
我已经阅读了很多关于使用的参考文献responseXML,responseText但是这让我回来了null.
所以,通过坚持responseText,我怎样才能得到我想要的特定元素?
例如,如果我的回复包含以下内容:
<html>
<head>....</head>
<body>....
.....
<table>
<tr>
<td>sometext</td>
<td>someothertext</td>
</tr>
<tr>
<td>sometext</td>
<td>someothertext</td>
</tr>
<tr>
<td>sometext</td>
<td>someothertext</td>
</tr>
</table>
<div> somediv </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如何访问表的第二行及其值?或者div等..所以,现在在我的实际html中,我有这样的感觉
<html>
<head>.....</head>
<body>
<table><tr><td id="test">Test</td></tr></table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我希望在我的实际html表中解析提取的元素/值.
document.getElementById('test').innerHTML = the_extracted_elements_from_responseText
这让我难住了。我有一组 url(用于数据),我需要将其拉入页面并在加载所有结果后处理结果。我正在尝试使用 JQuerys Deffered 功能来确保在处理结果之前所有 ajax 调用都已完成。一旦我介绍了它(when().done() 功能),我的 responseText 就神奇地消失了。
我最简单的例子:
$.when([$.ajax("pathToData")]).done(
function(results) {
console.log(results[0]); //object with a responseText attribute
console.log(results[0].responseText); //undefined !!!
}
)
Run Code Online (Sandbox Code Playgroud)
我怀疑我遗漏了一些简单的东西,但是我阅读的文档越多,这看起来就越正确。我希望其他人可以轻松地发现问题并为我指明正确的方向。提前致谢!
我有一个调用php文件的ajax脚本.
php文件回显"是"或"否",我想用字符串进行逻辑比较.
在javascript中,我想比较responseText中的字符串,看它是否= ="是"(或"否").但比较失败了.
所以我做了警告responseText,它确实显示"是"(或"否")作为字符串.但我在这里读到,responseText可能包含隐藏的空白字符,所以我做了responseText的字符串长度,它表明字符串长度比它应该的长4个字符.所以我转发了responseText警报(escape(responseText)),它显示我在responseText字符串的末尾隐藏了%0A和%0D(换行符和换行符).
我读到这些字符是由php添加的,但我也读到不同的php版本/服务器之间的额外字符是不同的.
如何在不使用正则表达式的情况下防止这些额外的空格,因为正则表达式可能会删除有意的空格?
请不要建议使用jquery或mootools作为答案.
TIA
如果我在XHR的onreadystatechange函数中,我可以很容易地做到document.title = xhr.responseText,但如果我让函数返回responseText,我就不能设置一个等于我的XHR外层包装的变量来使它等于响应; 这有什么办法吗?
我的包装:
ajax = function(url, cb)
{
xhr = (window.XMLHttpRequest)
? new XMLHttpRequest()
: new ActiveXObject('Microsoft.XMLHTTP');
xhr.onreadystatechange = function()
{
if (xhr.readyState == 4 && xhr.status == 200)
{
cb(xhr.responseText);
};
}
xhr.open('get', url, true);
xhr.send();
};
Run Code Online (Sandbox Code Playgroud)
现在,如果我做了类似的事情:
ajax('bacon.txt', function(_)
{
document.title = _;
}
Run Code Online (Sandbox Code Playgroud)
它绝对完美; document.title实际上成为了对bacon.txt的调用的responseText.但是,如果我尝试以这种方式实现它:
document.title = ajax('bacon.txt', function(_)
{
return _;
}
Run Code Online (Sandbox Code Playgroud)
没有这样的运气.任何人都可以澄清为什么会这样吗?};