我遇到了一個很奇怪的問題。 我應該先指出我對ajax很陌生。從ajax文本文件中讀取在一些服務器上工作,但不是其他服務器?
通過大量閱讀這裏和所有的專家,我設法創建了一個腳本,通過Ajax調用允許我讀取包含圖像鏈接的服務器上的文本文件。這些圖像然後顯示在我的html頁面上。
這似乎很奇怪,但我實際上已經創建了一個windows程序,經常寫入這個文本文件。這允許我的html頁面根據我的Windows程序輸出的文本顯示動態圖像。現在
,問題...
當文本文件被坐在我的Dropbox的公用文件夾,該網站的偉大工程。 Ajax從文本文件中提取文本並顯示圖像。
現在,當我採用相同的文本文件,並將其ftp到我的Ubuntu服務器時,Ajax不再讀取文本文件。所有其他配置保持不變,除了當然指向新的文本文件位置的ajax URL src。該工程
代碼:
<html>
<head>
<meta charset="utf-8">
<meta name="robots" content="noindex,nofollow" />
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script type="text/javascript">
$(document).ready(function(){
$.ajax({
url : "https://dl.dropboxusercontent.com/u/********/status.txt",
dataType: "text",
success : function (data) {
console.log(data)
var lines = data.split(",")
for (var i = 0; i < lines.length; i++) {
var img = $('<img class="dynamic">');
img.attr('src', lines[i]);
img.appendTo('#status');
}
}
});
});
</script>
</head>
<body>
<div id="status"></div>
</body>
</html>
而且不工作的代碼(所有圖片和文字文件除了託管在不同服務器上的文本文件一樣)
<html>
<head>
<meta charset="utf-8">
<meta name="robots" content="noindex,nofollow" />
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script type="text/javascript">
$(document).ready(function(){
$.ajax({
url : "http://a-different-server.com/status.txt",
dataType: "text",
success : function (data) {
console.log(data)
var lines = data.split(",")
for (var i = 0; i < lines.length; i++) {
var img = $('<img class="dynamic">');
img.attr('src', lines[i]);
img.appendTo('#status');
}
}
});
});
</script>
</head>
<body>
<div id="status"></div>
</body>
</html>
這是有或許與我的服務器上的MIME類型或設置有關?
感謝您的幫助!
在Chrome中查看開發人員控制檯時是否收到任何錯誤消息? – JanR
太棒了,這聽起來像是一個跨域問題。看看這篇文章:http://stackoverflow.com/questions/20035101/no-access-control-allow-origin-header-is-present-on-the-requested-resource – JanR
明白了!只需要在Apache的配置文件中啓用cors。非常感謝! – Mark