【发布时间】:2014-01-29 12:05:26
【问题描述】:
我正在使用 JQuery 的 $.ajax 调用 REST 方法,并希望使用返回数据更新 HTML div。 但是,尽管网络服务器指示 200 响应,但成功数据始终为空。 预期的响应只是纯文本。 此外,当我通过浏览器调用 REST 方法时,会显示预期的响应。
这是我的 JS 的内容:
window.onload = function() {
document.getElementById("button").onclick = function() {
var result = "none";
$.ajax({
url: 'http://<local_server:port>/<string_parameter>/',
type: 'GET',
aysnc: false,
success: function(data) {
result = data;
}
});
document.getElementById("texthere").innerHTML = result;
}
}
“结果”变量的内容仍然是“无”。 这是我的 HTML 文件:
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript" src="http://code.jquery.com/jquery-2.0.0.js">
<script type="text/javascript" src="my.js"></script>
</head>
<body>
<div id="texthere"Going to be updated when button is clicked</div><br />
<div style="width:200px">
<button id="button">Update</button>
</div>
</body>
</html>
我看到了相关的问题以及他们将异步设置为 false 和跨域设置为 false 的建议不起作用。我在这里想念什么?任何想法都非常感谢。 提前致谢!
已编辑 我尝试使用 Google Chrome 的 Java 脚本控制台对其进行调试,但出现此错误:
XMLHttpRequest cannot load http://<server:port>/<param>/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
我应该在服务器上做些什么,或者我可以在我的客户端脚本上做一个解决方法吗? 再次感谢
更新 我使用 IE11 进行了尝试,数据现在显示在 HTML div 上。 但是,我想在不同的浏览器上运行它。那我应该在客户端脚本还是在服务器端做什么呢?
更新 通过在服务器端允许 CORS,我能够使其正常工作。我正在为我的服务器端脚本使用 Django,所以我需要调整我的 settings.py 上的一些条目并添加一个额外的类。如果有人使用 Django 并遇到与我相同的问题,this guide will help you allow CORS.
【问题讨论】:
-
aysnc有错别字,应该是async -
您的 HTML 格式不正确。关闭 id 为“texthere”的 div 的 div 标签
-
不是这样..只是一个错字