我有两个开发站点调用api.localhost
和game.localhost
. 两者都是从旧版本的 Apache 运行的,它与在物理服务器上运行的相同,所以我不想更改它,除非我必须这样做。我也在运行旧版本的 PHP(除非必须,否则我不想更新它)。
问题是如果我在它上面运行一个测试页面(如下所示)api.localhost
工作正常。如果我在同一页面上运行,game.localhost
那么它会失败。起初我认为失败是由于我当时使用的 jquery.jsonrpc 导致的,所以我减少到只使用 jQuery ajax 调用。我将我正在调用的 index.php 文件的响应减少为一个简单正确的通用 jsonrpc 响应。实际的 ajax 调用来自另一个 SO question。萤火虫控制台出乎意料地200 OK
在请求的红色字符串之后显示并且在其下方没有响应。
我看过的东西:
- 两个站点上都有相同版本的 jquery。
- 虚拟主机看起来不错。它们仅在错误日志文件名不同方面有所不同。
- 除了很多网站图标错误外,错误日志中没有任何内容。
- 主机文件看起来不错。那里没有什么不寻常的。
索引.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>test</title>
<head>
<body>
<script type="text/javascript" src="jquery.js"></script>
<script>
$(document).ready(function() {
$.ajax({
url: 'http://api.localhost/index.php',
data: JSON.stringify({jsonrpc:'2.0',method:'add', params:[1400,2100],id:"jsonrpc"}), // id is needed !!
type:"POST",
dataType:"json",
success: function (result) {
alert("ok");
},
error: function (err,status,thrown) {
alert ("this syntax sucks!! " + " ERROR: " + err + " STATUS: " + status + " " + thrown );
},
complete: function (xhr,status) {
alert('Complete=> showing status as: '+ status);
data = $.parseJSON(xhr.responseText);
alert (data);
}
});
});
</script>
test
</body>
</html>
api.localhost/index.php
<?php
print '{"jsonrpc": "2.0", "result": 19, "id": 1}';
?>
是什么阻止了请求继续进行并得到服务?