gpt4 book ai didi

javascript - Ajax请求总是抛出错误

转载 作者:行者123 更新时间:2023-11-28 09:37:50 26 4
gpt4 key购买 nike

function loaded() {
var xmldoc,
currenttime = new Date().getTime(),
req,
address = 'http://webservices.foo.com/eSignalQuotes/eSignalQuotes.asmx/GetDelayedQuotes?',
symbols = 'symbols=' + '+c,s,ct,zw,kw,adm+',
cusip = '&cusip=',
fields = '&fields=' + 'desc,month,year,recent,netchg,-decimal',
type = '&type=' + 'future,stock,index',
dispfullname = '&dispfullname=' + 'true',
datefmt = '&datefmt=',
timefmt = '&timefmt=',
timestamp = '&' + Math.floor(currenttime/3600000),
query = address + symbols + cusip + fields + type + dispfullname + datefmt + timefmt + timestamp;
;

if(window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else {
req = new ActiveXObject("Microsoft.XMLHTTP");
}

req.addEventListener('error', function(e) {alert('Error');}, false);
req.addEventListener('load', function(e) {xmldoc = req.responseText;}, false);
req.open('GET', query, true);
req.send();

}

这就是我的代码的样子,它在 Safari 和 Firefox 中总是抛出错误。疯狂的是,如果我删除事件监听器,并将响应类型更改为 responseText,Internet Explorer 会向我提供输出。我尝试了overrideMimetype,但这似乎没有帮助。如果我在 Firefox 或 Safari 中检查响应,我会得到 null。我很茫然,任何帮助将不胜感激。

我应该提到,我宁愿避免使用任何第三方库。

更新:错误发生在 progress 事件期间,如果我检查 .lengthComputable 我得到 false

更新2:Safari 进一步阐明了这个问题:

XMLHttpRequest cannot load Origin is not allowed by Access-Control-Allow-Origin.

最佳答案

我不能 100% 确定,但在我看来,该问题涉及跨站点通信。我最终做的是让 PHP 脚本下载该文件,然后使用 javascript 在本地获取它。

<?php
$mark = $_GET['mark'];
$xmldoc = new DOMDocument();
$xmldoc -> preserveWhiteSpace = false;
$xmldoc -> formatOutput = true;
$xmldoc -> load($mark);
unlink('fenced.xml');
echo $xmldoc -> save('fenced.xml');
?>

Javascript:

localreq.open('GET', 'fenced.xml', true);
localreq.addEventListener('load', function(e) {xmldoc = localreq.responseXML;}, false);
localreq.send();

关于javascript - Ajax请求总是抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12783792/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com