gpt4 book ai didi

jquery - 使用 jQuery GET 加载 CSV 文件返回 header 但不返回数据

转载 作者:行者123 更新时间:2023-12-01 04:20:09 25 4
gpt4 key购买 nike

使用 jQuery“GET”函数从服务器读取 CSV 文件时,我没有获取任何数据。当我使用 FireBug 查看代码时,我可以看到 GET 请求已发送,并且返回值为“200 OK”。我还看到 header 已正确返回,因此肯定发出了请求,并且返回了数据。这也是我在 Wireshark 中看到的。在这里,我看到 CSV 文件的完整内容作为标准 HTTP 响应返回。
但我的脚本中不存在实际数据。 Firebug 显示空响应,并且永远不会调用“成功”函数。可能出了什么问题?

编辑:我的问题似乎缺少信息的重要部分。以下代码在我的本地计算机上运行,​​并由 Firefox 中的 Aptana Studio 使用内置测试服务器启动。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>New Web Project</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="jquery.js" type="text/javascript" charset="utf-8"></script>

<script type="text/javascript">
var csvData;
$(document).ready(function() {
$("#btnGET").click(function() {
csvData = $.ajax({
type: "GET",
url: "http://www.mywebsite.com/data/sample_file.csv",
dataType: "text/csv",
success: function () {
alert("done!"+ csvData.getAllResponseHeaders())
}
});
});
})
</script>
</head>

<body>
<h1>New Web Project Page</h1>
<button id="btnGET">GET Data</button>
</body>
</html>

最佳答案

该代码不起作用,因为我尝试进行跨域 GET。该页面和脚本托管在我的本地计算机上,并且 GET 尝试从完全不同的域检索数据。尽管技术上可行,但它被所有现代浏览器阻止,因为它是一个安全漏洞。
Frederick Behrends 为我指明了正确的方向。正如他还提到的,唯一允许的跨域 GET 是使用“jsonp”。

以下文本摘自 jQuery 文档:
“由于浏览器安全限制,大多数“Ajax”请求都受到同源策略的约束;该请求无法成功从不同的域、子域、端口或协议(protocol)检索数据。”

关于jquery - 使用 jQuery GET 加载 CSV 文件返回 header 但不返回数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11409920/

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