我的服务器上托管了一个json文件 . 当我尝试向json文件发出Ajax“GET”请求时,它失败了 .
在Safari中查看控制台,它说“无法加载资源” .
Firebug显示“200 OK”,但响应没有显示出来 . 甚至Firebug也没有显示JSON选项卡 .
我相信这是因为使用AJAX不允许跨域请求 .
我想知道如何克服这个问题?另外,如果我想在我的服务器上启用跨域请求,我相信需要创建一个 crossdomain.xml
文件 . 我不确定,但这就是我所知道的 . 我在Google上搜索过,但找不到任何相关链接 .
任何帮助都非常感谢 .
谢谢 .
UPDATE: 我没有使用任何服务器端脚本语言(PHP,ASP.NET等) . 我使用的是纯HTML和JavaScript / jQuery .
UPDATE-2:
我使用以下代码来制作跨域请求:
<script src="jquery-1.6.2.js"></script>
<script>
$(document).ready(function () {
$.ajax({
dataType: 'jsonp',
data: '',
jsonp: 'jsonp_callback',
url: 'http://myhosting.net/myjsonfile.json',
success: function (jsonData) {
alert("success")
alert(jsonData);
},
error: function(errorObj) {
alert(errorObj.statusText);
},
});
});
当我在Firebug中看到's 2522241 tab, I see a JSON tab, and I am able to see the json response. However, the 2522242 callback handler doesn'时被调用,但"error"回调处理程序被调用,我得到警告说 parseerror
.
知道什么可能是错的吗?
3 回答
由genesis给出的解决方案对我有用,但是我必须省略url上的尾随斜杠 . 即:
在目标服务器上
在PHP中:
如果你不想使用服务器脚本语言:把它放在(linux)控制台
和你的.htaccess文件添加
把它放在你的 .htaccess 和普通的ajax中